javascript閉包的進階使用方法執行個體

來源:互聯網
上載者:User

擴充
Code: 複製代碼 代碼如下:var blogModule = (function (my) {
 my.AddPhoto = function () {
//添加內部代碼
 };
 return my;
}(blogModule));

Say:
將自身傳進方法,然後實現了方法的擴充,有點象零件組裝啊
Code:複製代碼 代碼如下:var blogModule = (function (my) {var oldAddPhotoMethod = my.AddPhoto;
 my.AddPhoto = function () {  // 重載方法,依然可通過oldAddPhotoMethod調用舊的方 }; return my;}(blogModule));

Say:
好處就是可以調用以前的方法。
複製與繼承
Code:複製代碼 代碼如下:var blogModule = (function (old) { var my = {}, key; for (key in old) { if (old.hasOwnProperty(key)) { my[key] = old[key]; } } var oldAddPhotoMethod = old.AddPhoto; my.AddPhoto = function () { // 複製以後,進行了重寫,當然也可以繼續調用oldAddPhotoMethod }; return my; } (blogModule));

Say:
簡單的複製實現
跨檔案分享權限設定私人對象
Code:複製代碼 代碼如下:var blogModule = (function (my) { var _private = my._private = my._private || {}, _seal = my._seal = my._seal || function () { delete my._private; delete my._seal; delete my._unseal; }, _unseal = my._unseal = my._unseal || function () { my._private = _private; my._seal = _seal; my._unseal = _unseal; }; return my; } (blogModule || {}));

Say:
blogModule._seal()上鎖,_unseal() 開鎖,實現內部變數的私人化。我認為這樣實現並不是最好的,但是我們可以學習下這個開鎖閉鎖的功能。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.