函式知多少(二)

2021-09-19 17:27:50 字數 1258 閱讀 5161

上次聊了關於定義函式的知識,還有引數方面的,這次先補充一點引數小知識,還有簡單的講一下閉包。

引入的引數會儲存在arguments陣列物件中,第乙個引入的引數儲存在aruguments[0]中,以此類推,參見以下**:

var myarr = ["hangzhou", "shanghai", "beijing", "guangzhou"];

function foo(obj)

foo(myarr);

function outside(x) 

return inside;

}fun_inside = outside(5);

console.log(fun_inside);

result = fun_inside(3);//return 8

result1= outside(5)(3);//return 8

我們都知道,函式內部是可以讀取外部定義的變數的。在這裡,outside函式包含了乙個內部函式inside,所以inside可以使用outside引入的引數。我們把函式inside作為返回值賦給fun_inside,當然,同時返回的還有x。此時我們再執行fun_inside並且傳入乙個y就能返回兩者之和,最後一行只是把兩個引數同時傳入,其他無異,這就是乙個很簡單的閉包。

下面是執行這段**後監視窗的結果。

更深入的下一期再講,因為作者也正在學習啦~~

var myarr = ["hangzhou", "shanghai", "beijing", "guangzhou"];

console.log(myarr);//["hangzhou", "shanghai", "beijing", "guangzhou"]

console.log("test:" + myarr);//test:hangzhou,shanghai,beijing,guangzhou

為什麼輸出內容會不同呢?作者到現在也不解,不過對程式執行是沒有影響的。有大神懂的話,求指導???

內聯函式知多少

到底啥是內聯 inline 函式?為什麼內聯函式效率比較高呢?要想解決上述問題,就必須先來說說普通的函式呼叫是怎樣的流程.在大多數機器上,一次函式呼叫其實包含著一系列工作 1.呼叫前先儲存暫存器,並在返回時恢復 2.可能需要拷貝實參 3.程式轉向乙個新的位置繼續執行等等.這些無疑都是函式呼叫時的開銷...

專案文件知多少(二)

十 uml設計說明 這個文件不常用,我一般會在兩種情況下要求專案做業務模型設計 1 業務相當複雜的時候。功能規格書更多的是從模組介面,操作方式上去闡述模組的功能,至於底層的資料模型還得用uml圖來輔助說明。uml圖有很多種,我們一般也只常用幾種,包括 用例圖,類圖,時序圖,其中類圖又最為重要。2 對...

資訊列印函式phpinfo知多少

php 4,php 5,php 7 phpinfo 輸出關於 php 配置的資訊 phpinfo int what info all bool 輸出 php 當前狀態的大量資訊,包含了 php 編譯選項 啟用的擴充套件 php 版本 伺服器資訊和環境變數 如果編譯為乙個模組的話 php環境變數 作業...