我正在使用具有自定义回调功能的库。
var dataTable = $("table").DataTable({
//...
initComplete: function(settings, json){
console.log(this);
}
}
我正在尝试外化此initComplete回调。我定义了一个自定义函数:
var initCallback = function(settings, json){
console.log(this);
}
var dataTable = $("table").DataTable({
initComplete: initCallback
}
它确实有效,但this
并未指向datatable
本身。有没有办法将它绑定到initCallback,以便我可以访问它?
答案 0 :(得分:0)
如果您将“this”传递给外部函数怎么办?
var initCallback = function(dataTableInstance, settings, json){
console.log(dataTableInstance);
}
var dataTable = $("table").DataTable({
initComplete: function(settings, json) { initCallback(this, settings, json);}
}
答案 1 :(得分:0)
您要找的是bind
函数,here is some info。
bind()方法创建一个新函数,在调用时,将其this关键字设置为提供的值,并在调用新函数时提供任何前面提供的给定参数序列。
基本上,你可以这样做:
var initCallback = function(settings, json){
console.log(this);
}
var dataTable = $("table").DataTable({
initComplete: initCallback.bind(dataTable)
}