<script>

            // 원조스플릿은 사실상 의미가 없는거임.
            // 변수를 담는용도로써만 작동함
            function Ancestor_split()
            {
                Ancestor_split.prototype.split(str, arr)
                {
                    this.split = function () {
                        return str.split(arr);
                    }
                }
            }

            Mysplit.prototype = Object.create(Ancestor_split.prototype);
            Mysplit.prototype.constructor = Mysplit;
            // 프로토타입 상속 구문

            function Mysplit(str, token) {

                Mysplit.prototype = Ancestor_split.prototype; // 프로토타입 체인
                Mysplit.prototype.split = function (str, recursive_arr)
                {
                    let temp = str;
                    for (let i in recursive_arr) {
                        if(Array.isArray(recursive_arr[i]))
                        {
                            temp = this.split(temp,recursive_arr[i]); // 재귀호출
                        } else {
                            temp = temp.split(recursive_arr[i]).join(""); // 아닐때
                        }
                    }
                        return temp;
                }
            }

            let a = new Mysplit();

            let ss = a.split("AAAsdaaahCCCCCfd:uhdda", ['a', 'A', ['CCCCC', ':'] ]);
            console.log(ss);

            // object instanceof constructor
            // 오브젝트 = 판별객체 | 콘스트럭터 = 판별목표함수
            // object 프로토타입체인에 constructor.prototype이 존재하는지 판별함
            console.log(Mysplit instanceof Object); // true
            console.log(a instanceof Mysplit); // true
            console.log(a instanceof Ancestor_split); //true


</script>

상속과 프로토타입 체인에 대한 실습 및 예제

수토리지