【问题标题】:Use arrow functions in jQuery plugin在 jQuery 插件中使用箭头函数
【发布时间】:2017-09-28 00:38:48
【问题描述】:

我正在编写一个 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

谁能告诉我我做错了什么??

【问题讨论】:

  • 这是意料之中的。正则函数有this指向jquery对象,箭头函数有根this上下文。
  • 想解释一下否决票?

标签: javascript jquery this arrow-functions


【解决方案1】:

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

箭头函数表达式的语法比函数短 表达式并且不绑定自己的 thisargumentssupernew.target.

更多信息请参见this article

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 2020-11-13
    • 2015-12-29
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多