无法用默认值替换为 jquery.extends
unable to replace with jquery.extends with default values
我正在尝试对对象应用、绑定和调用方法。下面我无法用 public 数据替换 layout
说如果我没有从我正在调用的对象传入。
var data = [{
"option": "com_social",
"userId": localStorage.getItem("ckuser"),
"layout": "getSample",
"view": "conversations",
"format": "json",
"limit": 1
}];
var Data = 'default';
function ajaxCall(opt){
var opt = jQuery.extend({}, data, opt);
var layout = opt[0]['layout'];
this.Data = layout;
}
/***global variable & functions end***/
var list = {
data : [{
"option": "com_social",
"userId": localStorage.getItem("ckuser"),
"layout": "getConversations",
"view": "conversations",
"format": "json",
"limit": 2
}]
}
ajaxCall.call (list, list.data);
console.log(list.Data);
如果我不为对象 list
传入 "layout": "getConversations",
,它会说未定义。我知道我要求使用列表对象中的数据。但是现在,如果列表对象未传入 属性,我希望能够使用 jQuery.extend
替换为默认数据。
jQuery.extend
类似于 Object.assign
将扩展一个对象,而不是数组。
在下面的代码中:
var opt = jQuery.extend({}, data, opt);
data
是一个没有键的数组。所以,它没有像您预期的那样工作..
试试这个:
var opt = jQuery.extend({}, data[0], opt[0]);
而不是 var opt = jQuery.extend({}, data, opt);
我正在尝试对对象应用、绑定和调用方法。下面我无法用 public 数据替换 layout
说如果我没有从我正在调用的对象传入。
var data = [{
"option": "com_social",
"userId": localStorage.getItem("ckuser"),
"layout": "getSample",
"view": "conversations",
"format": "json",
"limit": 1
}];
var Data = 'default';
function ajaxCall(opt){
var opt = jQuery.extend({}, data, opt);
var layout = opt[0]['layout'];
this.Data = layout;
}
/***global variable & functions end***/
var list = {
data : [{
"option": "com_social",
"userId": localStorage.getItem("ckuser"),
"layout": "getConversations",
"view": "conversations",
"format": "json",
"limit": 2
}]
}
ajaxCall.call (list, list.data);
console.log(list.Data);
如果我不为对象 list
传入 "layout": "getConversations",
,它会说未定义。我知道我要求使用列表对象中的数据。但是现在,如果列表对象未传入 属性,我希望能够使用 jQuery.extend
替换为默认数据。
jQuery.extend
类似于 Object.assign
将扩展一个对象,而不是数组。
在下面的代码中:
var opt = jQuery.extend({}, data, opt);
data
是一个没有键的数组。所以,它没有像您预期的那样工作..
试试这个:
var opt = jQuery.extend({}, data[0], opt[0]);
而不是 var opt = jQuery.extend({}, data, opt);