将AJAX JSON对象复制到现有Object中

Jaw*_*212 10 javascript ajax jquery json

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

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

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

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

for (var key in json) {
    if (object.hasOwnProperty(key)) {
        object[key] = json[key];
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Kar*_*kar 11

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

Object.assign(targetObject, json);


pal*_*aѕн 10

尝试使用extend():

var newObject = jQuery.extend({}, oldObject);
Run Code Online (Sandbox Code Playgroud)