prototype
是 constructor
才有的属性。被构造函数创建的实例对象的 __proto__
指向 constructor 的 prototype` 属性,即原型对象:
let o = new Object()
o.__proto__ === Object.prototype // true
// ES6开始,可以通过`Object.getPrototypeOf(o)`来获取原型对象
constructor.prototype
与object.__proto__
才是原型链中的节点,而其本身不(一定)是原型链中的节点。
/---
2019/4/1 编辑
通过Object.create()
可以将任意对象作为原型对象来创建新的对象,这是否也意味着所有对象都在原型链上?
但是并不是所有对象都拥有constructor
,但是无疑它们会继承其原型的constructor
---/
不要直接对prototype
赋值,这样会打破原型链
网友评论