2016-07-18 2 views
1

私はカスタムコールバックを持つライブラリを扱っています。これは外部コールバックでこれにアクセスします

var dataTable = $("table").DataTable({ 
    //... 

    initComplete: function(settings, json){ 
     console.log(this); 
    } 
} 

このinitCompleteコールバックを外部化しようとしています。 datatable自体を指していない

var initCallback = function(settings, json){ 
    console.log(this); 
} 

var dataTable = $("table").DataTable({  
    initComplete: initCallback 
} 
それは作業を行い

、しかしthis:私は、カスタム関数を定義しました。これをinitCallbackにバインドしてアクセスできるようにする方法はありますか?

答えて

0

"this"を外部関数に渡すとどうなりますか?あなたが探しているものを

var initCallback = function(dataTableInstance, settings, json){ 
    console.log(dataTableInstance); 
} 

var dataTable = $("table").DataTable({  
    initComplete: function(settings, json) { initCallback(this, settings, json);} 
} 
0

bind機能、here is some infoです。

バインド()メソッドが呼び出されたときに、新しい関数が呼び出されたときに提供されるそのこのキーワードは、任意の前の引数の指定された配列と、与えられた値に設定されている、新たな機能を作成します。

基本的に、あなたはこのようないくつかの操作を行うことができます。

var initCallback = function(settings, json){ 
    console.log(this); 
} 

var dataTable = $("table").DataTable({  
    initComplete: initCallback.bind(dataTable) 
} 
関連する問題