【发布时间】:2013-06-16 16:02:00
【问题描述】:
我有这个构造函数对象:
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
});
如果我console.log(model),则输出为:
Bindable { name=5, level=5, strength=5 }
为什么构造函数中的每个属性都分配了相同的值?
【问题讨论】:
-
你为什么使用非标准的和弃用的
__definePropert__而不是标准的Object.defineProperty? -
因为这对我来说是新闻。
标签: javascript object constructor getter-setter ecmascript-5