请看下面的代码段:
var o = {f:function(){ return this.a + this.b; }};
var p = Object.create(o);
o.a = 10;
o.b = 20;
console.log(o.f()); // output: 30
console.log(p.f()); // output: 30
对象 p 没有属性 p.a 和 p.b 那么 p.f() 如何返回输出 30 . 那是原型(prototype)链吗?谁能解释一下?提前致谢。
最佳答案
这里 o
是 prototype p
对象,所以 o
的所有属性在 p
中可用。
因此,当您调用p.f()
时,您将在this.a
和this 中获得分配给
o
的值。 b
关于javascript - 为什么两个函数调用都返回相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33117407/