Sci*_*ion 1 javascript ecmascript-5
在 JavaScript 中,非标准属性 __ proto__ 和函数 Object.getPrototypeOf(...) 返回内部属性 [[Prototype]]。
对于所有函数,属性“prototype”都是 Object.prototype 的实例,例如:
Array.prototype instanceof Object//true
Run Code Online (Sandbox Code Playgroud)
但 Object.prototype 却并非如此:
Object.prototype.__proto__ === null //true
Object.getPrototypeOf( Object.prototype ) === null //true
Run Code Online (Sandbox Code Playgroud)
对象的proto属性引用与其内部 [[Prototype]] (通常称为“原型”)相同的对象,该对象可以是一个对象,也可以是 Object.prototype 的默认情况。原型,空。
Object.prototype 会更合适吗?proto或失败的 Object.getPrototypeOf (Object.prototype) 返回 Object.prototype?
这是一个错误吗?这个可以吗?为什么?
原型链必须在某个地方停止。
如果这样的话Object.getPrototypeOf( Object.prototype ) === Object.prototype,当 JS 引擎尝试从原型中解析某些内容时,就会进入无限循环。
它会沿着原型链向上走到Object.prototype,并且,如果在那里没有找到它,它会再次向上走Object.prototype,无限循环。
事实上,如果您尝试自己执行此操作,则会收到错误消息:
> Object.prototype.__proto__ = Object.prototype
Error: Cyclic __proto__ value
Run Code Online (Sandbox Code Playgroud)
[[Prototype]]请注意,您还可以通过调用创建自己的对象Object.create(null)。
| 归档时间: |
|
| 查看次数: |
1434 次 |
| 最近记录: |