yui的命名空间和继承机制
js 命名空间-LMLPHP
js 命名空间-LMLPHPvar YAHOO = window.YAHOO || {};
js 命名空间-LMLPHP
js 命名空间-LMLPHP
js 命名空间-LMLPHPYAHOO.namespace = function(ns) {
js 命名空间-LMLPHP
js 命名空间-LMLPHP    if (!ns || !ns.length) {
js 命名空间-LMLPHP        return null;
js 命名空间-LMLPHP     }
js 命名空间-LMLPHP
js 命名空间-LMLPHP    var levels = ns.split(".");
js 命名空间-LMLPHP    var nsobj = YAHOO;
js 命名空间-LMLPHP
js 命名空间-LMLPHP    // YAHOO is implied, so it is ignored if it is included
js 命名空间-LMLPHP    for (var i=(levels[0] == "YAHOO") ? 1 : 0; i<levels.length; ++i) {
js 命名空间-LMLPHP         nsobj[levels[i]] = nsobj[levels[i]] || {};
js 命名空间-LMLPHP         nsobj = nsobj[levels[i]];
js 命名空间-LMLPHP     }
js 命名空间-LMLPHP
js 命名空间-LMLPHP    return nsobj;
js 命名空间-LMLPHP};
js 命名空间-LMLPHP
js 命名空间-LMLPHPYAHOO.extend = function(subclass, superclass) {
js 命名空间-LMLPHP    var f = function() {};
js 命名空间-LMLPHP     f.prototype = superclass.prototype;
js 命名空间-LMLPHP     subclass.prototype = new f();
js 命名空间-LMLPHP     subclass.prototype.constructor = subclass;
js 命名空间-LMLPHP     subclass.superclass = superclass.prototype;
js 命名空间-LMLPHP    if (superclass.prototype.constructor == Object.prototype.constructor) {
js 命名空间-LMLPHP         superclass.prototype.constructor = superclass;
js 命名空间-LMLPHP     }
js 命名空间-LMLPHP};
js 命名空间-LMLPHP
js 命名空间-LMLPHPYAHOO.namespace("util");
js 命名空间-LMLPHPYAHOO.namespace("widget");
js 命名空间-LMLPHPYAHOO.namespace("example");
05-11 22:27