찾다

 >  Q&A  >  본문

javascript - 在js高级程序设计书上,控制台上出现Uncaught ReferenceError: bind is not defined

var EventUtil = {
    addHandler:function(element,type,handler){
        if(element.addEventListener){
            element.addEventListener(type,handler,false);
        }else if(element.attachEvent){
            element.attachEvent("on"+type,handler);
        }else{
            element["on"+type] = handler;
        }
    },
    removeHandler:function(element,type,handler){
        if(element.removeEventListener){
            element.removeEventListener(type,handler,false);
        }else if(element.detachEvent){
            element.detachEvent("on"+type,handler);
        }else{
            element["on"+type] = null;
        }
    }
};
var handler={
    message:"Event handled",
    handleClick:function(event){
        alert(this.message);
    }
};
var btn=document.getElementById("btn");
EventUtil.adddHandler(btn,"click",bind(handler.handleClick,handler));
PHPzPHPz2896일 전410

모든 응답(5)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-10 17:39:41

    bind()函数有定义....在603页

    function bind(fn, context){
        return function(){
            return fn.apply(context, arguments);
        };
    }

    看书要认真 = =

    회신하다
    0
  • 阿神

    阿神2017-04-10 17:39:41

    猜测题主在编写书中的示例的时候漏掉了bind方法,最后这一行的Bind没定义啊。

    EventUtil.adddHandler(btn,"click",bind(handler.handleClick,handler));

    我猜可能是这样的

    function bind(callback, obj){
        return callback.bind(obj);
    }

    회신하다
    0
  • 黄舟

    黄舟2017-04-10 17:39:41

    最后一行bind函数没有定义

    회신하다
    0
  • 迷茫

    迷茫2017-04-10 17:39:41

    bind is no defined; bind没有定义,不是说得很明显了么

    회신하다
    0
  • 黄舟

    黄舟2017-04-10 17:39:41

    bind(handler.handleClick,handler)

    这里的bind是哪里来的?

    회신하다
    0
  • 취소회신하다