1. 程式人生 > 其它 >js函式加括號和不加括號的區別

js函式加括號和不加括號的區別

技術標籤:前端javascript

        function text() {
            return '666'
        }
        var a = text;
        var b = text();
        console.dir(a);
        console.dir(b);

在這裡插入圖片描述

我們把1、2、3行程式碼叫做函式(物件),函式是一種叫做function引用型別的例項,因此函式是一個物件。物件是儲存在記憶體中的,函式名則是指向這個物件的指標

a表示把函式名text這個指標拷貝一份給變數a,但是這不是指函式本身被複制了一份。它只是傳遞了函式體所在的地址位置,在需要的時候好找到函式體去執行。

就好比,地圖上武漢市(對應函式物件)只有一個,但指向武漢市的路標(對應指標)有很多,而且還可以繼續新增(複製)無數個指向武漢市的路標,但武漢市本身不會被複制。

b表示立即執行text這個函式,裡面的程式碼