簡體   English   中英

如何在JavaScript中使用自己的指針創建唯一函數?

[英]How to create a unique function with its own pointer in JavaScript?

每次調用getFunction都會返回一個唯一函數,對嗎?

var getFunction = function() {
    var myFunction = function() {
    };
    return myFunction;
}

var function1 = getFunction();
var function2 = getFunction();

function1 === function2; // false

是的,每次調用一個函數時,都會為該運行創建一個新的作用域,並且其中定義的所有變量都是唯一的,並且在函數運行之間不會共享。

即使執行以下操作,其結果也會相同,因為內部函數仍在函數范圍內定義,並且可以看到外部函數的參數。

var getFunction = function() {
    function myFunction() {
    };
    return myFunction;
}

var function1 = getFunction();
var function2 = getFunction();

function1 === function2; // false

可以如下所示。 外部作用域包含三個變量分配,並且getFunction調用將創建兩個新的作用域,這些作用域返回在該作用域中定義的函數對象。

范圍可視化

暫無
暫無

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

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