崩潰了,這樣的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