javascript怠惰事件(動態事件)

3820 ワード

最近ol 2のソースコードを見て、怠け者のイベント、ダイナミックイベントは、DOM elementのイベントを追加すると、動的にeventHandleを変更し、実際にはjsのプロトタイプチェーンとクローズドの知識を使用しています.

<html xmlns=http://www.w3.org/1999/xhtml>
<head>
    <meta http-equiv=Content-Type content="text/html;charset=utf-8">
    <meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1">
    <title>title>
head>
<body>
    <button id="btn">lazy eventbutton>
body>
<script>
var clickHandle = function(){
    alert(1);
}
var clickHandle2 = function(){
    alert(2);
}

var CEvent = function(){
    this.handle;
};
CEvent.prototype ={

    setHandle : function(handle){
        this.handle = handle;
    },
    attachHanlde : function(){
        var self = this;
        return function(event){
            return self.handle.call(event || window.event);
        };
    }
}
var myEvent = new CEvent();
myEvent.setHandle(clickHandle);

document.getElementById("btn").addEventListener("click",myEvent.attachHanlde());
//document.getElementById("btn").addEventListener("click",myEvent.handle);

myEvent.setHandle(clickHandle2);

script>
html> 
実例は簡単です.自分で運転してみたら分かります.