的Javascript传递参数箭头功能
我创建一个jQuery数据表中的一类,它的工作原理,但我有与下面的代码段的一些问题:的Javascript传递参数箭头功能
let table = $("#" + this.name).DataTable(); table.on('click', 'tr td.details-control', function() {
let detailRows = [];
let tr = $(this).closest('tr');
let row = table.row(tr);
let idx = $.inArray(tr.attr('id'), detailRows);
if (row.child.isShown()) {
tr.removeClass('details');
row.child.hide();
detailRows.splice(idx, 1);
}
else {
tr.addClass('details');
let rowData = table.row(tr).data();
row.child(this.formatChildRows(rowData)).show();
if (idx === -1) {
detailRows.push(tr.attr('id'));
}
}
});
,因为道路“这个”作品
table.on('click', 'tr td.details-control', (event) => { ...
});
功能现在运行但“表”:在JavaScript中,函数formatChildRows不再发现,因为这不再是指类,但到表行,我改变,像这样的代码解决了这个变量不再可访问,因为它在箭头函数中未定义。
我尝试很多东西,如:
evt => function(table) {}
代替:
(event) =>
我想这可能工作,但在函数内部的代码不再被某种原因执行。
任何想法?
回答:
这应该工作:
const self = this; table.on('click', 'tr td.details-control', function (event){
row.child(self.formatChildRows(rowData)).show();
...
});
但如果这是可能的,你应该避免this
关键字,例如,你应该直接引用对象objectName.formatChildRows()
。
以上是 的Javascript传递参数箭头功能 的全部内容, 来源链接: utcz.com/qa/258486.html