我刚刚编写了这段代码。
function Point(x,y){
this.x = x;
this.y = y;
}
var myPoint = new Point(4,5);
console.log(myPoint.__proto__ === Point.prototype);
console.log(Point.__proto__ === Function.prototype);
console.log(Function.__proto__ === Object.prototype);
前两个表达式返回true但第三个表达式返回false。我不确定为什么它返回false,因为根据下面的图像,它应该返回true。
在图像中,您可以注意到Function.prototype' s __ proto __属性指向Object.prototype。
有人可以清楚我的概念吗?
答案 0 :(得分:3)
在图像中,您可以注意到Function.prototype的__ proto __属性指向Object.prototype。
但那不是你测试过的!您测试了Function.__proto__
,实际上等于Function.prototype
。试试这个:
console.log(Function.prototype.__proto__ === Object.prototype);