14

私はいくつかの Javascript プロトタイプを持っています。最初は、インスタンスには ID のみが入力され、他のデータの一般的なプレースホルダー情報がいくつかあります。次に、ID とオブジェクト タイプ (jQuery の AJAX 関数を使用) を含むメッセージをサーバーに送信すると、サーバーは不足しているすべての情報 (ただし ID はありません) を含む JSON オブジェクトを返します。返されたオブジェクトの変数の名前は、既存のオブジェクトの変数とまったく同じです。

これを既存の空のオブジェクトに転送する最も簡単な方法は何ですか? 私はいくつかの代替案を思いつきました

  • 返されたオブジェクトと等しいオブジェクトを設定し、id をコピーします (プロトタイプ関数を失いますか?)
  • 同一の構造を持つオブジェクトを取得してデータをコピーする各オブジェクトの関数を作成します
  • JSON オブジェクトのキーと値のペアをループして既存のオブジェクトにコピーします

3 番目のオプションを使用する場合、これは正しい方法ですか? :

for (var key in json) {
    if (object.hasOwnProperty(key)) {
        object[key] = json[key];
    }
}

jsonが返されたオブジェクトでobjectあり、既存のオブジェクトであると仮定します。

4

3 に答える 3

13

extend()を使用してこれを試してください:

var newObject = jQuery.extend({}, oldObject);
于 2013-05-04T10:50:24.017 に答える
1

jQuery.extend を使用できます: http://api.jquery.com/jQuery.extend/

$.extend(object1,object2);

JSON が文字列の場合は、最初からオブジェクトを作成します。

var object1=$.parseJSON(myJsonString);
于 2013-05-04T10:48:52.500 に答える