<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>
상속과 프로토타입 체인에 대한 실습 및 예제