2017-04-05 49 views
0

我需要你在以下問題的幫助:jQuery.extend回報功能

爲什麼initialState是一個功能?:

var object = function(){ 

    var chart = { 
     state: { 
      style: { 
       color: 'red' 
      } 
     } 
    } 

    return { 
     update: function() { 
      _this = chart; 
      _this.initialState = jQuery.extend(true, _this.state); 
     }, 
     console: function(){ 
      _this = chart; 
      console.log(_this) 
     } 
    } 
} 

var chart = new object(); 

chart.update(); 
chart.console(); 

這裏是小提琴例如:https://jsfiddle.net/Lt6s40hk/

+3

第一個參數爲'extend'應該對象。如果只有一個參數提供給'$ .extend()',這意味着目標參數被省略。在這種情況下,jQuery對象本身被假定爲目標。通過這樣做,可以將新函數添加到jQuery名稱空間。這對於希望向JQuery添加新方法的插件作者很有用._ – Tushar

+1

http://api.jquery.com/jquery.extend –

+0

哦,非常感謝你,我已經用類似的方法嘗試過了,但是沒有也工作。非常感謝你 –

回答

0

如果目標是沒有提供給$ .extend(),這意味着目標 參數被省略。在這種情況下,假設jQuery對象本身是 是目標。通過這樣做,您可以將新函數添加到jQuery名稱空間的 。這對於希望爲JQuery添加新方法的插件作者會很有用。

正確方法

_this.initialState = jQuery.extend(true,{}, _this.state); 
+0

謝謝!它已經工作了。有時我需要花更多時間閱讀api文檔:( –