4
См сегмент кода ниже:Почему оба вызова функции возвращают одно и то же значение?
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.a и p.b тогда как p.f() возвращение выход 30. Это прототип цепи? Может ли кто-нибудь объяснить это? Заранее спасибо.
Yes..just проверьте здесь консоль http://jsfiddle.net/sandenay/azjmxasu/ –
Вы можете увидеть ' a' и 'b' в свойстве' __proto__' 'p' –
Да, это цепочка protootype. Вы можете избежать этого, затеняя 'a' и' b': 'p.a = p.b = 5; p.f() === 10' – Oriol