jQuery.extend返回函数

时间:2017-04-05 13:05:31

标签: javascript jquery

在以下问题中我需要你的帮助:

为什么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/

1 个答案:

答案 0 :(得分:0)

  

如果未向$ .extend()提供目标,则表示目标   参数被省略了。在这种情况下,jQuery对象本身就是   被认为是目标。通过这样做,您可以添加新功能   jQuery名称空间。这对于希望的插件作者非常有用   向JQuery添加新方法。

正确的方式

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