有什么办法来介绍本地变量“iWantThisHere”在这里,这样我就可以调用obj.n()假冒功能本地变量
var obj = {
test: "sure",
n : function(){ console.log(iWantThisHere); }
};
我试着用:
function fake(methods){
var F = new Function('methods', "var iWantThisHere = 'u have it', obj = {}; for(var meth in methods){ obj[meth] = methods[meth] } return obj;");
return F(methods); }
console.log(fake(obj), fake(obj).n());
我不想在这里使用全局变量。设想一个模块化系统,其中每个模块使用例如一个util类,它例如在App对象中定义。所以我必须输入例如App.utils.map或类似的东西。如果有一个这个util函数的快捷方式是模块上下文本身的一个局部变量,那将是很好的。
编辑 ---那里有没有办法做到这一点----
咦?你到底在说什么? – SLaks 2011-06-03 22:27:03
你完全不清楚你想要这个变量是做什么,或者做什么,或者其他任何事情。 – Pointy 2011-06-03 22:27:16
由于范围链的工作方式,你可以在全局范围内引入这个变量,并且它会被选中 - 除非脚本在本地范围内明确定义了它自己的版本,在这种情况下,我没有看到很多希望:函数将始终使用它定义的范围中的函数,如果它存在的话。 – Reid 2011-06-03 22:28:29