1 回答

TA贡献1719条经验 获得超6个赞
js的类是基于原型链的
我说一下下面三个:
//假设你定义一个A函数:
var A = new Function();
//然后创建了一个A实例(对象)叫a:
var a = new A();
console.log(a instanceof A); //输出为true,A是A类的构造函数,a是A类的一个对象
//因为a和A都有一个原型对象,分别保存在它们不同的属性
console.log(a.__proto__ == A.prototype);
//同样Object也是一个构造函数,所以我们多了这样声明一个空对象的写法:
var o = new Object();
//既然Object是一个函数,那么就是Function的实例:
console.log(Object.__proto__ == Function.prototype); //true
console.log(Object instanceof Function); //true
//同理Function也是一个构造函数,所以有这么写:
//如上面的:var A = new Function(),于是:
console.log(Function.__proto__ == Function.prototype); //true
console.log(Function instanceof Function); //true
//所以:
console.log(Function.__proto__ == Object.__proto__); //true
//另外原型本身是个对象,即Function.prototype是对象:
Function.prototype.__proto__ == Object.prototype; //true
总结一下:
Object.__proto__=>Function.prototype=>Function.prototype.__proto__=>Object.prototype
Function.__proto__=>Function.prototype=>Function.prototype.__proto__=>Object.prototype
Number.__proto__=>Function.prototype=>Function.prototype.__proto__=>Object.prototype
添加回答
举报