崩潰了,這樣的js寫法你們見過麼?希望能得到詳細的指點解決方案

來源:互聯網
上載者:User
崩潰了,這樣的js寫法你們見過麼?希望能得到詳細的指點
function interfaceInit(){
Dialog = (function (){
var now = null;
return {
add : function (id){
alert( id);
},
getNow : function(){
alert(now);
}
}
})();
}

這到底是函數還是對象啊?怎麼會有這樣的寫法?我怎麼調用?
這樣的寫法有什麼好處?寫得是人都看不懂的!

------解決方案--------------------
interfaceInit 應該是物件導向裡的介面

所有繼承了interfaceInit這個介面的類或函數,都要定義Dialog函數。
------解決方案--------------------
那Dialog函數裡面又有add和getNow兩個方法,怎麼調用呢?
==========
JScript code
var init = new interfaceInit();init.Dialog.add();init.Dialog.getNow();
------解決方案--------------------
這樣改會不會看得明白點?
可以把下面的代碼扔到頁面中,應該會alert出2.
JScript code

------解決方案--------------------
Js類 匿名對象.
------解決方案--------------------
To:xuStanly
你自己寫的代碼有做過測試嗎?!

To:foolbirdflyfirst
JScript code

------解決方案--------------------
to ls:
我原意是讓lz明白
1.(function(){alert(1)})();//定義一個匿名函數,然後馬上執行。
2. var a = function(){alert(1);} a();//定義一個變數為函數,然後調用執行

這兩種調用方式其實是一樣的。

所以Dialog = (function(){
return{a:'1',b:'2'}//返回一個object
})();
其實相當於Dialog = {a:'1',b:'2'}


也可以改得通俗易懂一點
var a = function(){return {a:'1',b:'2'}}
Dialog = a();
alert(Dialog.a)//will alert 1


------解決方案--------------------
JScript code

------解決方案--------------------
這種格式非常正常,如果你深入的瞭解了js,就會發現如果想實現一些比較進階的應用,js代碼只能這麼寫,建議樓主看看
(也就是O'reilly的犀牛書),重點學習一下與函數,對象相關的章節
然後,可以找一個比較流行的js架構學習一下他的原始碼,比如prototype
  • 聯繫我們

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