Javascript 数据表、es6箭头函数和此

Javascript 数据表、es6箭头函数和此,javascript,jquery,ecmascript-6,datatables,arrow-functions,Javascript,Jquery,Ecmascript 6,Datatables,Arrow Functions,我进行了以下初始化,使用preDrawCallback函数根据表中的记录数隐藏和显示分页和过滤器 由于它是webpack项目的一部分,我已将其转换为es6,但我不得不禁用该功能的对象速记,因为我无法找到不使用此获取当前表的方法: $tables.DataTable({ preDrawCallback:函数(设置){//eslint禁用行对象速记 const$table=$(this);//有没有一种方法可以不使用这个来获取这个表? //代码的其余部分 } })如您所说,如果该值未作为参数传入,

我进行了以下初始化,使用
preDrawCallback
函数根据表中的记录数隐藏和显示分页和过滤器

由于它是webpack项目的一部分,我已将其转换为es6,但我不得不禁用该功能的对象速记,因为我无法找到不使用
获取当前表的方法:

$tables.DataTable({
preDrawCallback:函数(设置){//eslint禁用行对象速记
const$table=$(this);//有没有一种方法可以不使用这个来获取这个表?
//代码的其余部分
}

})
如您所说,如果该值未作为参数传入,则需要使用普通函数。正常函数和箭头函数对此
具有不同的行为,因此您需要为作业选择正确的工具

至于您看到的lint错误,这与arrow函数没有任何关系。它只是告诉你要这样写:

$tables.DataTable({
  preDrawCallback(settings) { // <-- using shorthand on this line
    const $table = $(this); 

    // rest of code
  }
});
$tables.DataTable({

preDrawCallback(settings){//Ah我想知道为什么这个错误不是use arrow functions错误,我从来不知道你可以这样做回调,非常好。谢谢!但是你可以很容易地使用arrow函数并获得表实例。需要
这个
的唯一原因是使用api,即
这个.api()
等于
$(settings.oInstance.init().selector).DataTable()
..啊,对了,我使用了:
新的$.fn.DataTable.api(settings);
但是看不到任何从该api获取表的方法-这让我很困惑,因为该api有一个
.table()
-没有意识到设置实际上也在当前表上保存了大量信息
preDrawCallback:(设置)=>{const$table=$(settings.oInstance.init().selector).DataTable()}
啊,是的,只有在有一个表的情况下才有效-请参见:我的立场得到了纠正!
$('#'+settings.sTableId.)。应该使用DataTable()