有关yui3 Base.build 的第四个参数
一次看yui3的源码,看到,Base.build = function(name, main, extensions, cfg) ,中对它的第四个参数cfg很是不解,而且解释中也没说太明白.研究后发现这个参数很有意思.
首先这个参数是一个对象,即cfg = {}
它有两个参数,即cfg = {dynamic,aggregates},
dynamic:布尔值,
为真,构建一个全新的构造器aggregates数组中列出的Property将要被得写为空object
即 builtClass[val] = L.isArray(main[val]) ? [] : {};这里可以自己去扩展静态方法.
为假,只是扩展main.扩展后的main即为构造器.默认值 true. aggregates 数组列出的Property不受影响.
aggregates:一个数组,除去要聚合的静态属性,另外还提供一个自定义的静态属性对象cfg.cfgBuild,如果cfg.custom为真(true || 为一个对象)则会把cfg.cfgBuild里的属性聚合到构造器的静态成员里.
官方只显示这两个参数,其它的如cfg.cfgBuild和cfg.custom,只字不提,好像它们不推荐使用Base.build,取而代之的Base.create,不管是那种方法都能实现你想要的功能.
[javascript]
var WindowPanel = Y.Base.build("windowPanel", Panel, [Resizable],{dynamic:false,aggregates:["cfgBuildShow",'show',"staticAttr","show1","showFuck","show1NN"],
cfgBuild: {
_____cfgBuildShow:function(){
console.info(arguments);
},
_____cfgBuildStatic:function(){
console.info(arguments);
}
},
custom:true
});
[/javascript]
总结:有人说yui像linux jquery像windows,这话很有道理.....