JS閉包的幾種常見形式實例詳解
更新時間:2017年09月16日 10:08:09 作者:喵嘻嘻
本文通過實例代碼給大家詳細介紹了js閉包的幾種常見形式,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下
作用域鏈:
//作用域鏈
var a = 1;
function test() {
var b =2;
return a;
}
alert(test());//彈出1;
alert(b);//不能獲取b
//scope chain
var a = 1;
function test() {
var b = 2;
function test1() {
var c = 3;
alert(a);
alert(b);
alert(c);
}
test1();
}
test();//彈出1,彈出2,彈出3;
詞法作用域:
//詞法作用域;
function f1() {
var a = 12;
return f2();
}
function f2() {
return a;
}
alert(f1());//并不能獲取a,a在f2()中并未定義;
function f1() {
var a = 1;
return f2();
}
function f2() {
var b = 3;
alert(b);
return a;
}
alert(f1());//彈出3,a在f2()中未定義
function f1() {
var a = 1;
return f2();
}
function f2() {
var b = 3;
alert(b);
return a;
}
alert(f1());//彈出3,a在f2()中未定義,undefined
var a=55;
alert(f1());//彈出3,彈出55
如何通過閉包突破全局作用域鏈——幾種常見形式
//通過閉包突破全局作用域鏈
function f() {
var a = "sun";
return function () {
return a;
}
}
var test = f();
alert(test());//彈出sun
var n;
function f() {
var a = "sun";
n = function () {
return a;
}
}
f();
alert(n());//彈出sun
function f(param) {
var n =function () {
return param;
};
param++;
return n;
}
var test = f(45);
alert(test());//彈出46;
總結
以上所述是小編給大家介紹的JS閉包的幾種常見形式 ,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
您可能感興趣的文章:
- 通俗易懂地解釋JS中的閉包
- JS繼承與閉包及JS實現繼承的三種方式
- 淺談JavaScript作用域和閉包
- JS實現閉包中的沙箱模式示例
- JavaScript閉包的簡單應用
- 通過示例徹底搞懂js閉包
- JavaScript閉包和回調詳解
- 淺談JS封閉函數、閉包、內置對象
- JavaScript閉包_動力節(jié)點Java學院整理
- 深入理解Javascript中的作用域鏈和閉包
- JS閉包可被利用的常見場景小結
- 利用js的閉包原理做對象封裝及調用方法
- javascript閉包功能與用法實例分析
- JavaScript中閉包的詳解
- JS閉包用法實例分析
- 圖解Javascript——作用域、作用域鏈、閉包
- 輕松理解JavaScript閉包
- js中的閉包學習心得
相關文章
Bootstrap3使用typeahead插件實現自動補全功能
這篇文章主要介紹了Bootstrap3使用typeahead插件實現自動補全功能的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07
javascript基于原型鏈的繼承及call和apply函數用法分析
這篇文章主要介紹了javascript基于原型鏈的繼承及call和apply函數用法,結合實例形式較為詳細的分析了javascript中繼承的概念、創(chuàng)建方法以及call和apply函數的功能與使用技巧,需要的朋友可以參考下2016-12-12
JavaScript 用cloneNode方法克隆節(jié)點的代碼
很多時候我們需要通過HTML DOM 的方式,用JavaScript 動態(tài)生成很多相同的節(jié)點,包括其子節(jié)點2012-10-10

