我有一个范围问题。我有以下实现显示模块模式的代码:
myModule = function(){
var foo = "ohai";
function sayOhai(foo){
alert(foo);
};
return{
sayOhai : sayOhai
};
}();
myModule.sayOhai("configData");
这导致对话“configData”。
但是,我希望函数 sayOhai 使用定义的 var 说“ohai”。假设我不想更改 sayOhai 的参数名称,我如何在 sayOhai 中访问 foo 的值?我试过alert (this.foo)
了,但那是未定义的。
同样,这是一个理论问题,所以改变sayOhai(foo)
不是我正在寻找的解决方案。var 的名称和方法的参数应该保持不变。那么,从 sayOhai 的范围来看,var foo 的完整限定名是什么?
提前致谢