JavaScript靜態類寫法__Java

來源:互聯網
上載者:User
轉自: http://www.rainleaves.com/html/1684.html

javascript靜態類簡單來說就是不用通過new來建立的類,可以直接使用,就像javascript的內建全域類,如Math、Object一樣。

javascript靜態類寫法

var myClass = {    name: "雨打浮萍",    value: "http://www.rainleaves.com",    run: function(){        alert("run");    }}


這樣就可以實現一個基本的javascript靜態類寫法,但基本沒什麼意義,無非是啥定義幾個變數。

我們換個javascript靜態類寫法

var myClass = (function(){    var _name = "雨打浮萍";    var _value = "http://www.rainleaves.com";    var privateValue = "rainleaves";    var main = function(){        alert(this.name);        alert(_name);        myMethod();    };    var myMethod = function(){        alert(privateValue);    }    return{        name:_name,        value:_value,        main:main    }})();

這樣,通過 (function(){ return{} })();閉包的形式,返回一個類,賦值給myClass。這樣就可以通過閉包營造一個私人環境,保護
privateValue等私人屬性,可以是代碼更結構化。
在此段代碼中_name,_value通過引用賦值給myMethod.name和myMethod.value,同時main方法也被公開為公有屬性,而privateValue和myMethod一直為私人方法,隱藏在閉包之內。

運行

myClass.main();//運行結果:列印兩次雨打浮萍,一次rainleavesmyClass.name = "雨打浮萍Rainleaves";myClass.main();//運行結果:分別列印雨打浮萍Rainleaves、雨打浮萍、rainleaves

在實際使用中,我們通過JavaScript靜態類來將每一個頁面的邏輯分別封轉在不同的類中,相互不干擾,同時還可以在最這些類定義到一個總的靜態類中,實現代碼塊狀化,結構清晰。如:

var Manage = {};Manage.myClass = (function(){ return{} })();Manage.myClass2 = (function(){ return{} })();...


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.