我正在编写一个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
。
有人可以告诉我我做错了吗?
答案 0 :(得分:1)
这是因为在绑定this
时,不同的规则适用于箭头功能。
箭头函数表达式的语法短于函数 表达式并不绑定自己的
this
,arguments
,super
或new.target
。
有关详细信息,请参阅this article。