在jQuery插件中使用箭头功能 [英] Use arrow functions in jQuery plugin

查看:154
本文介绍了在jQuery插件中使用箭头功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个jQuery插件.但是当我使用箭头功能扩展jQuery时,它似乎不起作用.

I am writing a jQuery plugin. But it doesn't seem to work when I use arrow function to extend jQuery.

这有效:

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

        };

        params = $.extend(defaults, params);

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

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

But when I try to use arrow function, it returns me the window object :

$.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.

I've also tried using this.currentTarget but it returns undefined.

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

Can someone please tell me what I'm doing wrong ??

推荐答案

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

It's because different rules apply to arrow functions when it comes to binding this.

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

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

有关更多信息,请参见本文.

See this article for more information.

这篇关于在jQuery插件中使用箭头功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆