欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js面向?qū)ο笤O(shè)計(jì)用{}好還是function(){}好(構(gòu)造函數(shù))

 更新時(shí)間:2011年10月23日 14:18:45   作者:  
js面向?qū)ο笤O(shè)計(jì)用{}好還是function(){}好,大家給予了回復(fù),感覺不錯(cuò),特分享給大家。
在網(wǎng)上看了很多JavaScript的項(xiàng)目, 用到對象都是采用{}的形式:
例如jQuery, TinyMCE等都是形如:
復(fù)制代碼 代碼如下:

var Dialog =
{
int : function() { .... },
insert : function() { .... },
pop : function() { .... }
};
//調(diào)用就是:
Dialog.init();


而我自己一直使用function閉包的方式, 感覺使用內(nèi)部私有成員(函數(shù),變量)更方便:
復(fù)制代碼 代碼如下:

function classDialog()
{
var box = "sdfsdf"; //init, insert等函數(shù)中調(diào)用公共變量就會很方便, 調(diào)用內(nèi)部函數(shù)也很方便(如可以直接調(diào)用 search()).

this.init = function() { .... };
this.insert = function() { .... };
this.pop = function() { .... };

function search() { .... }
}
var Dialog = new classDialog();
Dialog.init();

看到TinyMCE在需要使用似有函數(shù)的時(shí)候, 是在init : function() { } 這個(gè)函數(shù)內(nèi)部又定義了一個(gè)函數(shù), 但是這樣的話, 這個(gè)函數(shù)就只能 init調(diào)用, 其他方法就沒辦法共用這個(gè)私有函數(shù)了.
當(dāng)然暫時(shí)還沒有看到一個(gè)私有函數(shù)被多個(gè)公共函數(shù)調(diào)用的例子.


我想問問各位大神么, 既然function(){} 閉包創(chuàng)建對象使用那么方便, 為什么 {} 方法還用的那么廣泛呢?

是不是 function() {} 創(chuàng)建的對象有什么缺陷?

回復(fù):
對于直接使用{}創(chuàng)建對象..這種情況在創(chuàng)建極少數(shù)對象的情況下且不需要封裝的情況下使用,對于需要批量創(chuàng)建對象的情況使用構(gòu)造函數(shù)來實(shí)例化對象就非常方便 主要還是看具體的情況吧

這兩種是完全不一樣的東西。

{}可以算做一個(gè)單例(單例模式)

function(){} 這種返回一個(gè)對象。每次都NEW的時(shí)候返回都是一個(gè)不同的對象!

上面有同學(xué)也說了 {} 更效率了。而且不用new。{} 全局固定,可任意擴(kuò)展。

一般來說{}確實(shí)效率高,使用簡單隨意,不過不想暴漏某些方法時(shí)候用 function 更好

相關(guān)文章

  • DOMAssitant最新版 DOMAssistant 2.5發(fā)布

    DOMAssitant最新版 DOMAssistant 2.5發(fā)布

    google code上的project ,值得大家學(xué)習(xí)它的類庫
    2007-12-12
  • js 簡單類代碼

    js 簡單類代碼

    js類的封裝方法,說實(shí)話我也是新手,一直沒涉及到j(luò)s的類,下面的代碼,應(yīng)該看的懂,不懂就先用腦子記下了,見得多了就會了
    2008-05-05
  • JS類的封裝及實(shí)現(xiàn)代碼

    JS類的封裝及實(shí)現(xiàn)代碼

    js并不是一種面向?qū)ο虻恼Z言, 沒有提供對類的支持, 因此我們不能像在傳統(tǒng)的語言里那樣 用class來定義類, 但我們可以利用js的閉包封裝機(jī)制來實(shí)現(xiàn)js類, 我們來封裝一個(gè)簡的Shape類.
    2009-12-12
  • javascript 面向?qū)ο缶幊?function也是類

    javascript 面向?qū)ο缶幊?function也是類

    function在javascript中用來創(chuàng)建函數(shù)或方法,但要想實(shí)現(xiàn)面向?qū)ο蠓绞降木幊?,類是不可或缺的角色之一,而且是主角?/div> 2009-09-09
  • JavaScript為對象原型prototype添加屬性的兩種方式

    JavaScript為對象原型prototype添加屬性的兩種方式

    為對象原型prototype添加屬性的的方法, 需要的朋友可以參考下。
    2010-08-08
  • 用JavaScript實(shí)現(xiàn)單繼承和多繼承的簡單方法

    用JavaScript實(shí)現(xiàn)單繼承和多繼承的簡單方法

    JavaScript是一種強(qiáng)大的多泛型編程語言,其融合了面向過程、面向?qū)ο蠛秃瘮?shù)式編程于一身,具備強(qiáng)大的表現(xiàn)能力。
    2009-03-03
  • JavaScript 繼承使用分析

    JavaScript 繼承使用分析

    繼承,通俗地說,之前你寫過一些類,這些類中有一些是而你現(xiàn)在要寫的類的功能的子集或者基本相同,那么你不用完全重新寫一個(gè)新的類,你可以把之前寫的類拿過來使用.這樣的一種代碼重用過程就叫做繼承
    2011-05-05
  • js對象的構(gòu)造和繼承實(shí)現(xiàn)代碼

    js對象的構(gòu)造和繼承實(shí)現(xiàn)代碼

    js對象的構(gòu)造和繼承實(shí)現(xiàn)代碼,學(xué)習(xí)javascript面向?qū)ο蟮呐笥芽梢詤⒖枷?。寫出跟漂亮與復(fù)用的代碼。
    2010-12-12
  • JavaScript 設(shè)計(jì)模式之組合模式解析

    JavaScript 設(shè)計(jì)模式之組合模式解析

    “組合模式”顧名思意就是將多種實(shí)現(xiàn)組合在一起而達(dá)到牽一處而動全身的效果。
    2010-04-04
  • javascript 面向?qū)ο蟮腏avaScript類

    javascript 面向?qū)ο蟮腏avaScript類

    這一節(jié)來說下緊接著的一個(gè)概念——類。雖然JavaScript中沒有class關(guān)鍵字,但作為開發(fā)人員我們一定要有這個(gè)思想。在C#中類可以分為實(shí)例類和靜態(tài)類,JavaScript亦然。
    2010-05-05

最新評論