在jQuery插件中使用箭头功能 [英] Use arrow functions in jQuery plugin
问题描述
我正在编写一个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
.
箭头函数表达式的语法比函数短 表达式,并且不绑定自己的
this
,arguments
,super
或new.target
.
An arrow function expression has a shorter syntax than a function expression and does not bind its own
this
,arguments
,super
, ornew.target
.
有关更多信息,请参见本文.
See this article for more information.
这篇关于在jQuery插件中使用箭头功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!