Javascript 如何使用jQuery'将用户选项与默认选项合并;当选项具有对象的属性数组时,s extend()
当options对象具有一个值为对象数组的属性时,如何使用jQUery的Javascript 如何使用jQuery'将用户选项与默认选项合并;当选项具有对象的属性数组时,s extend(),javascript,jquery,Javascript,Jquery,当options对象具有一个值为对象数组的属性时,如何使用jQUery的extend()方法将用户选项与默认选项合并 例如: var settings4 = $.extend({ type: 'one-panel', // 'one-panel' | 'two-panel' sidebarTargets: [ { targetKey: 'sidebar-one', initialLoadPanelKey: '
extend()
方法将用户选项与默认选项合并
例如:
var settings4 = $.extend({
type: 'one-panel', // 'one-panel' | 'two-panel'
sidebarTargets: [
{
targetKey: 'sidebar-one',
initialLoadPanelKey: 'panel1',
emptyPanelMessage: '',
sidebarWrapSelectorId: 'sidebar-container',
sidebarPanelWrapTemplate: '<div class="sidebar-panel {panelInitialSlideCss}" id="{panelSelectorId}" data-panel-key="{panelKey}"></div>',
showHeader: true,
headerTemplate: '<div class="sidebar-header" id="sidebar-header">Header text</div>',
},
// if sidebarSettings.type == one-panel, this is not required
{
targetKey: 'sidebar-two',
initialLoadPanelKey: 'none',
emptyPanelMessage: '<span>No Notebooks Notes Found',
sidebarWrapSelectorId: 'sidebar-container',
sidebarPanelWrapTemplate: '<div class="sidebar-panel" id="{panelSelectorId}" data-panel-key="{panelKey}"></div>',
showHeader: true,
headerTemplate: '<div class="sidebar-header" id="sidebar-header">Header text</div>',
},
{
targetKey: 'right-content-panel',
selectorId: 'sidebar-container',
cssClassLIst: 'content-panel content',
showLoader: true, // when AJAX content is loaded, show a loader spinner
loaderTemplate: '',
initialInnerContent: '',
},
{
targetKey: 'right-content-iframe-panel',
selectorId: 'sidebar-container',
cssClassLIst: 'content-panel content',
iframeNameAttribute: 'content',
template: '<iframe id="content-frame" src="default.html" name="content" width="100%" height="100%" frameborder="0"></iframe>',
}
],
}, sidebarOptions);
var设置4=$.extend({
键入:“一个面板”/“一个面板”|“两个面板”
侧目标:[
{
targetKey:'侧边栏一',
initialLoadPanelKey:'panel1',
emptyPanelMessage:“”,
sidebarWrapSelectorId:“侧边栏容器”,
sidebarPanelWrapTemplate:“”,
showHeader:是的,
headerTemplate:“标题文本”,
},
//如果sidebarSettings.type==一个面板,则不需要这样做
{
targetKey:'侧边栏2',
initialLoadPanelKey:“无”,
emptyPanelMessage:“未找到笔记本笔记”,
sidebarWrapSelectorId:“侧边栏容器”,
sidebarPanelWrapTemplate:“”,
showHeader:是的,
headerTemplate:“标题文本”,
},
{
targetKey:“右内容面板”,
selectorId:'侧栏容器',
cssClassLIst:“内容面板内容”,
showLoader:true,//加载AJAX内容时,显示加载程序微调器
loaderTemplate:“”,
initialInnerContent:“”,
},
{
targetKey:“右内容iframe面板”,
selectorId:'侧栏容器',
cssClassLIst:“内容面板内容”,
iframeNameAttribute:'内容',
模板:“”,
}
],
},侧压力选择);
sidebarTargets
上面的object属性就是问题所在。它可以包含数组中任意数量的对象。我如何使用jQuery的extend来合并选项和处理这样的属性?恐怕您无法使用
extend
将能够扩展您拥有的对象,如果您发送。问题是对象中有Array
s,而extend
将不知道如何处理这些数组
如果您能够将代码更改为对象,这将非常有用:
var a={
a:[a'],
b:{
c:1
}
}
变量b={
a:[b'],
b:{
d:2
}
}
$.extend(a,b)
log('常规扩展:')
控制台日志(a);
console.log(“”)
变量a={
a:[a'],
b:{
c:1
}
}
变量b={
a:[b'],
b:{
d:2
}
}
$.extend(true,a,b)
console.log('deep copy extend:')
控制台日志(a)代码>