这是一段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) {
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’?
解决方案 »
- jquery vs prototype 总结
- 一个菜鸟 关于表单验证
- js保存xml文档 没用权限 急!!!!!!!!!
- 一个关于onclick事件的问题 ,我做梦都在想 请高手帮忙治疗一下吧!
- post 表单
- 求助:如何将V8项目导入xcode
- easyui subgrid 子表格的时候 动态控制每行前边的 + 加号
- 大难题stack overflow at line:0!!!!高手请进
- 簡單問題,答對產即給分
- 表单中input的value值想从JS 中获取 该怎么做呢? 查了很多资料还是没弄出来。
- js重新定义form的action路径,结果出现404,帮忙解决下
- 路径 ../../ 是代表怎么样的一个位置啊?
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 });你说的问题不存在帮你修改的是一个闭包问题