這次帶給大家javascript的必包詳解,使用javascript的注意事項有哪些,以下就是實戰案例,一起來看一下。
閉包,這個名字好奇怪,
言歸正傳,先說一下js函數的變數作用域
以下範例全部基於局部變數
函數內部存取函數外部變數
demo1: var a = 100; function get() { console.log(a) } get(); // 运行结果:100
在demo1例子中,變數a是在函數外部宣告的,在函數get()當中是可以呼叫的,呼叫get()函數,在瀏覽器控制台會輸出100,也就是a的值。
函數外部存取函數內部聲明的變數
demo2: function get() { var a = 100; } get(); console.log(a); //运行结果:ReferenceError: a is not defined
在demo2例子中,變數a在函數get()中聲明,執行函數get()執行後,呼叫變數a,在控制台輸出:ReferenceError: a is not defined(a沒有被定義),可見,在函數外部是無法直接呼叫函數內部宣告的變數的。
難道就沒辦法得到到函數內部到變數來麼?當然不是,這時候閉包就派上用場來,看如下代碼:
function get() { var a = 100; return function () { return a; } } var b = get(); console.log(b); //运行结果: /* function () { return a; }*/ console.log(b()); // 运行结果:100
函數get()中返回一個函數,這個函數返回你想要得到到變量,然後在函數外部就可以透過get()()就可以得到到函數內部到變數的值了,
以上是javascript的必包詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!