我有这个构造函数对象:
function Bindable(obj) {
var prop;
for (prop in obj) {
this.__defineGetter__(prop, function () {
return obj[prop];
});
this.__defineSetter__(prop, function (val) {
obj[prop] = val;
});
}
}
被称为这样的:
var model = new Bindable({
name: 'Dave',
level: 10,
strength: 5
});
如果 I console.log(model)
,则输出为:
Bindable { name=5, level=5, strength=5 }
为什么构造函数中的每个属性都分配了相同的值?