上次聊了關於定義函式的知識,還有引數方面的,這次先補充一點引數小知識,還有簡單的講一下閉包。
引入的引數會儲存在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環境變數 作業...