Javascript - 在克隆的本机函数上调用“apply”时出错

时间:2017-08-13 02:44:38

标签: javascript google-chrome

我正在尝试在Chrome中克隆函数indexedDB.cmp,然后用新函数替换indexedDB.cmp。新函数使用console.log记录传递的参数,然后使用apply调用克隆函数。但是,当我使用apply时,我不断收到错误“非法调用”。我只需要在Google Chrome上使用它。任何帮助将不胜感激!

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);

1 个答案:

答案 0 :(得分:0)

"由于您已经使用了扩展语法,为什么不使用spread而不是apply来调用该函数? - Mikael Lennholm"

我还将i.cmp.bind({})更改为i.cmp.bind(i)