javascript - 在 JavaScript 中访问子对象

标签 javascript jquery json

“我正在扩展两个 JavaScript 对象,其中一个是从文件中 ajax 的变量,另一个是具有用户首选项的简单对象。

// local prefs
var prefs = { name: "Bob Barker", show: "Price is Right" };

// ajax in default prefs with dataType: "script"
var defaultPrefs = { 
         studio: { name: "CBS", location: "Hollywood, CA" },
         producers: [ { name: "Producer1" }, { name: "Producer2" } ]
}

// merge prefs
var mergedPrefs = $.extend( prefs, defaultPrefs );

问题是我无法使用 prefs. Producers 或 prefs.studio 访问制作人或工作室,因为它们是合并文件中的对象。我该如何解决这个问题?

最佳答案

试试这个:

var mergedPrefs = $.extend({}, prefs, defaultPrefs);

扩展空对象将创建原始对象的新副本。

您还可以使用Object.assign来完成相同的任务,但是jQuery.extend还有一个深度选项来递归合并,而Object.assign 始终是平坦的(为了获得更好的性能)。

关于javascript - 在 JavaScript 中访问子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36319857/

相关文章:

javascript - 如何使用 React Hooks 更新对象内数组的特定值?

javascript - Ramda.js:要列出的参数

javascript - 我如何更改节点的旋转(转换 : rotate(30deg)) with jquery and pure js?

jquery - Symfony、jQuery.ajax() 调用、 session 变量丢失

javascript - 查找 - 尚未被 A 标签包围 - 并被 A 标签包围的事件

javascript - 为什么连接两个字符串会出错?

javascript - 地理定位仅在刷新后才起作用

javascript - 像slashdot的评论过滤菜单这样的固定位置菜单怎么弄

PostgreSQL 9.3+下的JSON,这么难看?

java - 使用 GZIP、JSON 响应和 JQuery