1

prototye 中新创建的属性有哪些不可替换的属性见下图:

Object.prototype.name="Maizere";
x=new Object();
console.log(x.name)//logs maizere
x.name="Pathak";

而不是在原型中用相同名称替换属性的值,而是在对象上创建新属性,所以我需要知道这个令人困惑的代码背后的一切

4

1 回答 1

3

当你创建新对象时(在设置它的名字之前),你有这样的东西:

Object
> prototype
  > name = "Maizerre"

所以如果你得到它的名字,它首先会查看它自己的属性,然后是它的原型链,直到找到它。

在代码的末尾,你有这个:

Object
> name = "Pathak"
> prototype
  > name = "Maizerre"

现在,当您询问名称时,它会找到对象本身的属性,而不是沿着原型链查找。

于 2013-09-16T08:39:12.380 回答