引用下面的例子( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain ),为什么当我写 o.[[Prototype]]
时会出现错误(使用 nodejs
),而当我写 o.[[Prototype]]
时却不会出现错误我写o.__proto__
var o = {
a: 1,
b:2
}
o.[[Prototype]] = {b:1, c:3}; //doesn't work
o.__proto__= {b:1, c:3}; //works
console.log(o.a);
console.log(o.b);
console.log(o.c);
最佳答案
[[Prototype]]
是 Javascript 虚拟机(实际读取和执行您编写的代码的程序)使用的内部属性。您可以在某些调试器(例如 Chrome 中的调试器)中对其进行读取访问,但在代码上下文中无法使用它。相同且可用的属性是 __proto__ 属性,它根据 Javascript 类型的继承结构指定对象的父对象。
关于javascript - Javascript 中的 [[prototype]] 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47683856/