我创建了一个对象,如下
var lassie = {
name: 'Lassie',
breed: 'Collie',
speak: function () {
return 'Woof! Woof!'; }
};
我使用javascript的Object.create方法创建了另一个对象
var obj = Object.create(lassie);
现在,当我控制台obj时,它给了我一个空白的对象。
但是当我控制台obj.speak()时,它给了我“糟糕!纬!' 。
有人可以解释为什么吗?
最佳答案
将lassie
作为第一个参数传递给Object.create()
,以将prototype
的obj
设置为lassie
;迭代lassie
返回属性作为第二个参数
var lassie = {
name: 'Lassie',
breed: 'Collie',
speak: function() {
return 'Woof! Woof!';
}
};
var obj = Object.create(lassie, (function() {
var _obj = {};
for (var prop in lassie) {
_obj[prop] = {
value: lassie[prop],
writable: true,
enumerable: true,
configurable: true
}
}
return _obj
}()));
alert(obj.speak())