2017-08-13 16 views
0

indexedDB.cmpをクロムにクローンしてから、indexedDB.cmpを新しい関数に置き換えようとしています。新しい関数は、渡された引数をconsole.logで記録し、次にapplyを使用してクローン関数を呼び出します。しかし、applyを使用すると、「不正な呼び出し」というエラーが表示され続けます。私はこれをGoogle Chromeで動作させる必要があります。どんな助けもありがとう!Javascript - クローンネイティブ関数で "apply"を呼び出すとエラーが発生する

function init() { 
    var i = indexedDB; 
    i.cmp2 = i.cmp.bind({}); 
    i.cmp = function(...a) { 
     console.log("CMP call!",a); 
     return i.cmp2.apply(null,a); 
    }; 
} 
init(); 
indexedDB.cmp("/testFolder",3); 
+0

すでに普及構文が使用されているので、applyではなくspreadで関数を呼び出すのはなぜですか? –

+0

ありがとうございました!私は 'i.cmp.bind({})を' i.cmp.bind(i) 'に変更し、あなたの提案を試してみました。 –

答えて

0

「あなたはすでに普及の構文を使用しているので、なぜ普及して機能を呼び出す代わりに適用されない - ?ミカエルLennholm」

私もi.cmp.bind(i)i.cmp.bind({})を変更しました。

関連する問題