我真的看了这么多,并没有找到一个真正解释这个问题的答案...是否可以在函数中使用非全局变量?
我知道如何从函数内部访问全局变量。
myGlobalVariable = [];
function myFunction() {
myGlobalVariable.push("somedata");
}
现在如何访问范围链上的一个变量,如果它不是全局的?
myGlobalVariable = [];
function myFunction() {
var notGlobalVariable = "somedata";
var myOtherFunction = function() {
myGlobalVariable.push(notGlobalVariable); // This is what I'd like to be able to do.
}
}
我知道我可以做这样的事情
var notGlobalVariable = "somedata";
var myOtherFunction = function(arg) {
myGlobalVariable.push(arg);
}
myOtherFunction(notGlobalVariable);
但调用该方法只有当我有notGlobalVariable
一应俱全工程价值的功能。我希望做能够在全球范围内调用函数,并将它总是使用最初由notGlobalVariable
保存的值,而不必通过该值。
编辑
好吧,我还挺跳上这一枪。不过,我觉得我有一个很大的变量范围的问题,但显然我的问题是,在我的特定代码,我代替notGlobalVariable
使用变量名arguments
,并作为我应该知道,arguments
被遮挡时,是指在传递的参数。我将名称更改为args
,它工作正常。抱歉!
这是什么问题?你的例子完美地工作。 –
你的例子应该工作。也许你只是分配'myOtherFunction'而不是'myOtherFunction()'调用'myOtherFunction'' –
http://jsfiddle.net/N4kfY/1/ - 适用于我。 –