我真的看了這麼多,並沒有找到一個真正解釋這個問題的答案...是否可以在函數中使用非全局變量?
我知道如何從函數內部訪問全局變量。
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/ - 適用於我。 –