在webkit中对原生JavaScript方法使用apply/call

using apply/call on native JavaScript methods in webkit

本文关键字:apply call 方法 JavaScript webkit 原生      更新时间:2023-09-26

我正试图通过应用下面的代码调用addEventListener,但我在webkit的控制台中得到"TypeError: Type error"。

addEvent = (function (handler) {
  return function (element, event, fn) {
    handler.apply(element, [event, fn, false]);
  };
}(addEventListener || attachEvent));

我已经尝试了apply和call调用方法,但无济于事。我是否错过了一些明显的东西,或者试图做一些我还不知道的原因不允许的事情?

另一篇文章讨论了这一点,但不完全是我如何尝试使用它;在WebKit中使用本地代码函数作为JavaScript对象

完成此操作的另一种方法(如Crescent Flash所述)如下:

addEvent = (function () {   
  return addEventListener ? 
    function (element, event, fn) {
      element.addEventListener (event, fn, false); 
    } :
    function (element, event, fn) { 
      element.attachEvent ('on' + event, fn); 
    };
}) ();
然后可以扩展

以减少两个事件模型之间的其他差异。