2011-02-10 8 views
2

jQueryデータを使用してオブジェクトのデータをバインドするか、この種のオブジェクトを使用する方が効率的かどうか疑問に思っています。私は私のアプリのためのいくつかの種類のモデルを作成しようとしています。ここではオブジェクトコードがところでjQueryデータ()とオブジェクト(パフォーマンス)

ご意見について

var PersonData = function() { 
    var that = {}, 
     _name = 0, 
     _age = 0.0, 
     _domId = false; 

    that.data = initData(); 

    //This is for initing data from options 
    function initOptions() { 
     return { 
      name: _name, 
      age: _age, 
      domId: _domId 
     } 
    } 

    that.setName = function (name) { 
     that.data.name = name; 
    } 

    that.getName = function() { 
     that.data.name; 
    } 

    // I forgot to add dom id, now there is id for binding 
    that.setDomElementId = function (id) { 
     that.data.domId = id; 
    } 

    //Add getters and setter 

    return that; 
} 

おかげjavascriptの

+0

別の質問については、「ところで」の質問を予約してください。 –

+0

デフォルトのプロパティを持つデータ構造のイディオムは次のようになります: 'function PersonData(name、age){this.name = name || ""; this.age = age || 0; } 'このような虚偽のデフォルトでは、私はそれらを未定義のままにしておきます。 –

答えて

5

ためTextMateでゲッターとセッターを生成するための優れたプラグインが存在しているであるjQueryの.data()は、DOM要素にデータを取り付けるためです。 DOMに触れていない場合は、.data()に触れないでください。

また、私はあなたが行っているカプセル化の種類はJavaScript()の読み込み/書き込みの検出に必要がない限り価値があるとは思わない。)。 特にの場合、オブジェクトのプロパティに直接アクセスする方がパフォーマンスに問題がある場合は、はるかに良いオプションです。 JavaScriptは動的言語であり、それを受け入れます:)

+1

+1言語のプロパティを受け入れるため。プレゼンテーション(DOM)からデータを切り離すことができるなら、私はもう1つの+1を与えたでしょう。 –

+0

くそー、オブジェクトのDOM IDを追加するのを忘れました、残念です。 – user257980

+0

封筒チップありがとう。 – user257980

関連する問題