javascript - 在 jQuery 插件中使用箭头函数

标签 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

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

最佳答案

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

An arrow function expression has a shorter syntax than a function expression and does not bind its own this, arguments, super, or new.target.

参见this article了解更多信息。

关于javascript - 在 jQuery 插件中使用箭头函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43704847/

相关文章:

javascript - AJAX PHP 图像上传无法正常工作,$_FILES 为空?

javascript - 如何插入数据库jquery多输入?

java - 为什么 "this"用作 RelativeLayout 构造函数中的参数?

Android Toast 上下文难题

java - 在 Java 中访问类内部实例变量的最佳方法是什么?

php - 表单验证问题

javascript - 为什么我的提交按钮不起作用?

javascript - 如何在选项卡内添加分页

javascript - 表示 javascript 中的半小时时间增量 if else if

javascript - 为什么 $ ("input[id=' username' ]") works and $("#username") 不会?