簡體   English   中英

如何在Javascript中從外部范圍調用函數?

[英]How to call a function from outer scope in Javascript?

考慮一下代碼:

function foo()
{
    console.log('foo');
}

function bar()
{
    var foo = 5;
    foo(); // (*)
}

如何使(*)引用外部函數而不是局部變量?

如果外部范圍是全局范圍,則可以執行

window.foo(); // assuming you're in a browser

如果沒有,那你就不走運了。 給局部變量起另一個名字。

一個不走運的例子:

window.onload = function() {
    function foo()
    {
        console.log('foo');
    }

    function bar()
    {
        var foo = 5;
        foo(); // (*)
    }
}

匿名“加載”處理程序函數的范圍沒有名稱,或任何其他句柄,函數“ bar”中的代碼可以通過該句柄指示其希望引用 “ foo”而不是本地引用。

注意,Coffeescript明確禁止這樣做; 它不允許本地符號隱藏更全局的符號。 (這是該語言的一個有爭議的功能 ,在您跳上Coffeescript火車之前。)

如果您的函數是全局函數,則可以使用:

window.foo()

更多信息: http : //www.w3schools.com/js/js_function_invocation.asp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM