Javascript ES6箭头函数和jQuery小部件工厂
我正在我的项目中使用,我正在尽可能多地使用ES6语法,包括箭头函数 那么,我如何在小部件的方法中引用Javascript ES6箭头函数和jQuery小部件工厂,javascript,jquery,ecmascript-6,widget,this,Javascript,Jquery,Ecmascript 6,Widget,This,我正在我的项目中使用,我正在尽可能多地使用ES6语法,包括箭头函数 那么,我如何在小部件的方法中引用这个 作为一个假设的例子,我想转换这段代码 $.widget( "custom.colorize", { // default options options: { red: 255, green: 0, blue: 0 }, // The constructor _create: function() { this
这个
作为一个假设的例子,我想转换这段代码
$.widget( "custom.colorize", {
// default options
options: {
red: 255,
green: 0,
blue: 0
},
// The constructor
_create: function() {
this.options.green = 128;
}
});
此代码(请注意,我将\u create
函数更改为箭头函数,这将引发错误)
那么,我如何引用局部变量,因为它现在不指向它们
谢谢。看起来jquery小部件工厂不会以任何其他方式传入元素,因此您可以只使用常规的匿名函数语法。请注意,常规语法并非本质上更糟糕,因为您需要此
上下文,所以您唯一的选择是正常方式()。看起来jquery小部件工厂不会以任何其他方式传入元素,因此您可以只使用常规匿名函数语法。请注意,常规语法并非本质上更糟糕,因为您需要this
上下文,所以您唯一的选择是普通方式()。对于希望this
成为对象的方法,或者对于调用方显式将this
设置为所需内容的方法,不要使用箭头函数
箭头函数不仅仅是语法快捷键。执行时,它们会将this
的值更改为this
的词法值,因此只有当您想要this
的新行为或根本不使用this
时,才应使用箭头函数
在您的情况下,应该使用常规函数定义,不是一个箭头定义,因此调用者可以适当地向您传递this的值。不要将箭头函数用于希望this
成为您的对象的方法,或者用于调用者显式地将this
设置为您需要的方法
箭头函数不仅仅是语法快捷键。执行时,它们会将this
的值更改为this
的词法值,因此只有当您想要this
的新行为或根本不使用this
时,才应使用箭头函数
在您的情况下,您应该使用常规函数定义,而不是箭头定义,以便调用者可以适当地将this
的值传递给您
$.widget( "custom.colorize", {
// default options
options: {
red: 255,
green: 0,
blue: 0
},
// The constructor
_create: () => {
this.options.green = 128;
}
});