[英]Weird behaviour of Object.create()
有人可以解释这里发生了什么:代码示例1:
o2={b:10};
function classCreate(proto,o){
return Object.create(proto,o);
}
var o1=classCreate({a:o2},{});
console.log(o1.a.b); // prints 10
代码示例2:
o2={b:10};
function classCreate(proto,o){
return Object.create(proto,o);
}
var o1=classCreate({},{a:o2});
console.log(o1.a.b); //reference error
扩展最终对象时,Object.create如何管理其范围?
Object.create
的第二个参数应该是具有非常严格格式的属性的对象。 例如,这将起作用:
var o1 = classCreate({}, {a: {value: o2}});
在此处了解更多信息:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.