你不知道的JavaScript之原型(一)

1 [[prototype]]这个内置属性其实就是对于其他对象的引用,所有普通的[[prototype]]链最终都会指向内置的Object.prototype

2 new Foo()这个函数调用实际上并没有直接创建关联,只是间接完成一个关联到其他对象的新对象。

3 构造函数:所有带new的函数调用

4 constructor并不表示被构造,它不可被枚举但值是可以修改。

function Foo{...}
Foo.prototype={...}
var a1=new Foo();
console.log(a1.constructor===Foo);//false
console.log(a1.constructor===Object);//true

Foo.prototype的constructor属性只是Foo函数声明时的默认属性。

a1没有.constructor属性,所以它会委托[[prototype]]链上的Foo.prototype,此时已改为{},故返回a1.constructor===Object 为true。

猜你喜欢

转载自blog.csdn.net/qq_22182279/article/details/80556346