日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js模块化小结

發布時間:2025/3/17 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js模块化小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

復述一遍阮一峰的blog,加深印象

博客地址 ?http://www.ruanyifeng.com/blog/2012/10/javascript_module.html

?

? 1.函數 function m1(){} ?這樣函數里的新函數或者var的對象就不會污染全局;

? 2.對象寫法

  代碼優點

  1)多個有關聯的變量或者函數不污染全局,可以這樣在前面加一個module1的名字

  2)可以保證 new object里的key之間有一些邏輯上的聯系

var module1 = new Object({_count : 0,m1 : function (){alert(_count); //報錯     },m2 : function (){//...     }});

 調用時 ? module1.m1();? ?

 注意:key他們都是平行的。平行的意思是?看以下說明

? ?  如果在全局變量中寫以下代碼

var count = 0;function m1(){alert(count); //0 }function m2(){
m1();
}

?   ?m1里是可以獲取count的,m2里也可以調用m1。但是在module1里,各個函數和變量不可以相互引用,引用的話就如第一段代碼中的alert那里會報錯。

? ?所以平行的意思就是,module1里的_count,m1,m2都是一樣大的官,誰都不能調用誰支使誰。

? ?代碼缺點:外部可以修改module1內部內容 , 如 module1._count = 1;

??

3.模塊函數寫法

var module1 = function(){var _count = 0;var m1 = function(){alert(_count);};var m2 = function(){//...     };return {m1 : m1,m2 : m2};}$('#button').click( function(){module1().m1(); //0});

?

優點:1)可以私有函數或變量 ,如_count,function private

   2)外部無法改變

? ? 下面驗證了代碼無法改變,click的時候根本就無法進入修改m1的代碼

$('#button').click( function(){module1().m1 = function(){ //未進入alert(2);}module1().m1();});

? 立即執行函數寫法

 var module1 = (function(){var _count = 0;var m1 = function(){//...     };var m2 = function(){//...     };return {m1 : m1,m2 : m2};})();

這樣可以直接執行module1 就不用像上面那個代碼再module1()才能生效模塊里面的內容了

?

轉載于:https://www.cnblogs.com/cjy1993/p/3897236.html

總結

以上是生活随笔為你收集整理的js模块化小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。