Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript设置器/获取器_Javascript_Setter_Getter - Fatal编程技术网

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]);
};
}