Javascript设置器/获取器
我怀疑这是一个收尾问题,几个有帮助的人向我解释了这一点Javascript设置器/获取器,javascript,setter,getter,Javascript,Setter,Getter,我怀疑这是一个收尾问题,几个有帮助的人向我解释了这一点 尝试将i引用包装到函数中,然后阅读闭包。尽管有这么多帮助,我承认我仍然不太理解它们。定义是在闭包中创建的,所以所有的setter都使用I的最后一个值 改用这个: settersGetters(['firstname', 'lastname']); author.firstname = 'per'; author.lastname = 'olsen'; console.log(author.firstname); console.log(a
尝试将
i
引用包装到函数中,然后阅读闭包。尽管有这么多帮助,我承认我仍然不太理解它们。定义是在闭包中创建的,所以所有的setter都使用I的最后一个值
改用这个:
settersGetters(['firstname', 'lastname']);
author.firstname = 'per';
author.lastname = 'olsen';
console.log(author.firstname);
console.log(author.lastname);
函数setterGetter(属性)
{
作者[''属性]=null;
作者.\uuuu定义者uuuuuuuuuuu(财产),
函数(){
返回作者[''属性];
});
作者。定义设置者(属性,
功能(val){
作者[''财产]=val;
});
}
函数settersGetters(propStr){
对于(变量i=0;i
事实上,当调用生成的函数时,它们总是具有最高的i
值。更多:
settersGetters(['firstname', 'lastname']);
author.firstname = 'per';
author.lastname = 'olsen';
console.log(author.firstname);
console.log(author.lastname);
function setterGetter(property)
{
author['_'+ property] = null;
author.__defineGetter__(property,
function() {
return author['_'+ property];
});
author.__defineSetter__(property,
function(val) {
author['_'+ property] = val;
});
}
function settersGetters(propStr) {
for (var i = 0; i < propStr.length; i++) {
setterGetter(propStr[i]);
};
}