14

我有几个 Javascript 原型。最初,实例将仅填写 ID,并带有一些用于其他数据的通用占位符信息。然后,我向服务器发送一条带有 ID 和对象类型的消息(使用 jQuery 的 AJAX 函数),服务器返回一个带有所有缺失信息(但没有 ID)的 JSON 对象。返回对象中的变量与现有对象中的变量具有完全相同的名称。

将它转移到现有的空对象中的最简单方法是什么?我想出了一些替代方案

  • 将对象设置为等于返回的对象,然后复制 id (丢失原型函数?)
  • 为每个对象创建一个函数,该函数获取具有相同结构的对象并复制数据
  • 遍历 JSON 对象的键值对并将它们复制到现有对象

如果我使用第三个选项,这是正确的方法吗?:

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

假设json是返回的对象并且object是现有的对象。

4

3 回答 3

14

没有 jQuery 的替代方法是使用 javascript Object.assign 方法。

Object.assign(targetObject, json);

于 2020-01-08T15:58:28.173 回答
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 回答