Javascript ES6箭头函数和jQuery小部件工厂

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

我正在我的项目中使用,我正在尽可能多地使用ES6语法,包括箭头函数

那么,我如何在小部件的方法中引用
这个

作为一个假设的例子,我想转换这段代码

$.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;
  }
});