javascript设计模式-门面模式(facade pattern)

提供简单的高层api,隐藏复杂的底层api,方便程序员使用。

// addMyEvent是高层api, 隐藏了不同浏览器的实现
var addMyEvent = function( el, ev, fn ){
    if(el. addEventListener){ // 非ie实现
        el. addEventListener( ev, fn, false );
    } else if(el. attachEvent){  // ie实现
        el. attachEvent( 'on' + ev, fn );
    } else{
        el[ 'on' + ev] = fn;
    }
};

jQuery's $(document).ready(...),内部实际上使用bindReady()

bindReady: function() {
    ...
    if ( document.addEventListener ) {
       document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
    window.addEventListener( "load", jQuery. ready, false );
    } else if (document.attachEvent ) {
    document.attachEvent( "onreadystatechange", DOMContentLoaded );
        window.attachEvent( "onload", jQuery. ready );
    ...
}



你可能感兴趣的:(javascript设计模式-门面模式(facade pattern))