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

// 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/

10-11 14:48