读书人

哪位大侠愿意拔刀相助解决办法

发布时间: 2012-04-23 13:17:38 作者: rapoo

哪位大侠愿意拔刀相助
这是一段js代码
function User(properties) {
for (var i in properties) {
var p=i;
(function (which) {
which['get' + p] = function () {
return properties[p];
};
which['set' + p] = function (val) {
properties[p] = val;
};
})(this);
}
}
var user = new User({ "name": 'Mike', "age": 27 });

user.setname('Nike');
alert(user.getage());
alert(user.getname());
为什么alert(user.getage());得到的还是‘Nike’?

[解决办法]
function User(properties) {
for (var i in properties) {
var p=i;
(function (which, p) {
which['get' + p] = function () {
return properties[p];
};
which['set' + p] = function (val) {
properties[p] = val;
};
})(this, p);
}
}
var user = new User({ "name": 'Mike', "age": 27 });

你说的问题不存在

帮你修改的是一个闭包问题

读书人网 >JavaScript

热点推荐