在jQuery插件中使用箭头函数

时间:2017-04-30 09:21:38

标签: javascript jquery this arrow-functions

我正在编写一个jQuery插件。但是当我使用箭头函数来扩展jQuery时它似乎不起作用。

这有效:

$.fn.extend({
    func: function (params) {
        var ob = $(this);
        var selector = $(this).selector;
        var defaults = {

        };

        params = $.extend(defaults, params);

        generate(ob, selector, params);
    }
});

但是当我尝试使用箭头功能时,它会返回window对象:

$.fn.extend({
    func: (params) => {
        var ob = $(this); // returns window object
        var selector = $(this).selector;
        var defaults = {

        };

        params = $.extend(defaults, params);

        generate(ob, selector, params);
    }
});

我也尝试过使用this.currentTarget,但会返回undefined

有人可以告诉我我做错了吗?

1 个答案:

答案 0 :(得分:1)

这是因为在绑定this时,不同的规则适用于箭头功能。

  

箭头函数表达式的语法短于函数   表达式并不绑定自己的thisargumentssuper或   new.target

有关详细信息,请参阅this article