有关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,这话很有道理.....
posted @ 2010-11-22 15:22  7hihi  阅读(105)  评论(0编辑  收藏  举报