}}, {__hooks__:{createDom:__getHook("__createDom"), renderUI:__getHook("__renderUI"), bindUI:__getHook("__bindUI"), syncUI:__getHook("__syncUI"), decorateDom:__getHook("__decorateDom"), beforeCreateDom:__getHook("__beforeCreateDom")}, extend:function extend(extensions, px, sx) { var SuperClass = this, NewClass, parsers = {}; NewClass = Base.extend.apply(SuperClass, arguments); NewClass[HTML_PARSER] = NewClass[HTML_PARSER] || {}; if(S.isArray(extensions)) { S.each(extensions.concat(NewClass), function(ext) { if(ext) { S.each(ext.HTML_PARSER, function(v, name) { parsers[name] = v }) } }); NewClass[HTML_PARSER] = parsers } S.mix(NewClass[HTML_PARSER], SuperClass[HTML_PARSER], false); NewClass.extend = extend; return NewClass }, ATTRS:{control:{setter:function(v) {
Control.extend = function extend(extensions, px, sx) { /*jshint unused: false*/ var args = util.makeArray(arguments), self = this, xclass, argsLen = args.length, last = args[argsLen - 1]; if (last && (xclass = last.xclass)) { last.name = xclass; } var NewClass = Base.extend.apply(self, arguments); NewClass.extend = extend; if (xclass) { Manager.setConstructorByXClass(xclass, NewClass); } return NewClass; };
extend: function extend(extensions, px, sx) { /*jshint unused: false*/ var self = this, NewClass, parsers = {}; NewClass = Base.extend.apply(self, arguments); NewClass[HTML_PARSER] = NewClass[HTML_PARSER] || {}; if (S.isArray(extensions)) { // [ex1,ex2],扩展类后面的优先,ex2 定义的覆盖 ex1 定义的 // 主类最优先 S.each(extensions.concat(NewClass), function (ext) { if (ext) { // 合并 HTML_PARSER 到主类 S.each(ext.HTML_PARSER, function (v, name) { parsers[name] = v; }); } }); NewClass[HTML_PARSER] = parsers; } S.mix(NewClass[HTML_PARSER], self[HTML_PARSER], false); NewClass.extend = extend; return NewClass; },