为什么两个函数调用都返回相同的值?

Ber*_*aul 4 javascript jquery

请参阅以下代码段:

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
Run Code Online (Sandbox Code Playgroud)

对象p没有属性papb,那么pf()如何返回输出30.是原型链吗?有人能解释一下吗?提前致谢.

Aru*_*hny 9

这里o原型的的p对象,所以所有化子性质o是可用的p.

所以,当你打电话p.f(),你会得到分配给该值othis.athis.b