function Animal() {}
function Cat() {}
Cat.prototype = new Animal
function BadCat() {}
BadCat.prototype = new Cat
cat instanceof Cat //true
Cat instanceof Animal //true
Cat instanceof Function //true
Function instanceof Object //true
// 由上面讲的instanceof的结果,可以判断这些类型的继承层级:
// Object -> Function -> Animal -> Cat -> BadCat
function instance_of(L, R) {
for (L = L.__proto__; L; L = L.__proto__) {
if (L == R.__proto__) return true;
}
return false;
}
// 因为 Function.__proto__ === Function.prototype
Function instanceof Function == true
// 因为 Object.__proto__.__proto__ === Object.prototype
Object instanceof Object == true
Object/Function instanceof Object/Function === true
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |