var obj = {};
var funNames = ['get', 'set'];
for(var item in funNames){
var funName = funNames[item];
obj[funName] = function(){
console.log(funName);
}
}
obj.get();
obj.set();
最后两个都输出 set, 我想实现的是一个输出 get, 一个输出set
回复 (6)
L
用闭包可以实现
var obj = {};
var funNames = ['get', 'set'];
for(var item in funNames){
var funName = funNames[item];
function some(funName){
return function() {
console.log(funName);
}
}
obj[funName] = some(funName);
}
obj.get();
obj.set();
J
var obj = {};
var funNames = ['get', 'set'];
for(var item in funNames){
var funName = funNames[item];
//动态生成function
obj[funName] = new Function("console.log('" + funName + "');");
}
obj.get();
obj.set();
T
引用 luoyetx用闭包可以实现
可以实现我的功能 非常感谢.
T
引用 j4cnodejs
这种方式也可以解决我的问题, 谢谢
不过有一点点不易于扩展...
P
var obj = {};
var funNames = ['get', 'set'];
funNames.forEach(function(funName) {
obj[funName] = function(){
console.log(funName);
}
});
obj.get();
obj.set();
J
引用 peiweippww
这个最简洁最有效
参与回复
登录后即可参与回复。登录