2016-07-25 57 views
0

我玩弄應用,綁定和調用方法,以取代jquery.extends。下面我無法用公開數據替換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); 

,如果我不"layout": "getConversations",通爲對象list,它說不確定。我明白我要求使用列表對象中的數據。但是現在我希望能夠使用jQuery.extend來替換默認數據,如果列表對象不通過屬性。

回答

1

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);

+0

你是一個美麗的天使!謝謝 – 112233

+0

lol np!快樂的編碼 –