使用频率 | 低 |
成员类型 | 静态函数 |
Std.unite 根据常规模块创建一个联合模块,联合模块帮助管理所有的对应模块实例,一旦联合模块被创建,会拥有所有对应常规模块的所有成员函数.
而通过Std.unite 创建出来的联合模块,称为united模块,而new united之后的对象,这里称为 united instance,联合模块实例.
在某些情况下,可以简化一些批量操作
例如:Std.dom.united , Std.animation.keyframe.united
当联合模块实例在执行某一个函数的时候,其包含的所有模块实例都会执行这个函数,联合模块实例函数不会有返回值,始终都返回this对象.
方法名称 | 成员类型 | 描述 |
::methods | static | 联合模块实例对象的模块方法 |
::addMember | static | 添加联合模块的原型方法 |
联合模块实例默认有一个控制函数,这个控制函数的名称就是 "_" ,下划线,该函数还可以像控制数组一样的控制联合模块实例.
_ 下划线支持的方法可以参见 Std.unite.methods
//添加一个常规模块实例对象到united实例里
unitedInstance._(Object instance);
//添加多个常规模块实例对象到united实例里,参数为数组
unitedInstance._(Array instances);
//获取索引号为index的常规模块实例
unitedInstance._(Number index);
//获取索引号为index的常规模块实例
unitedInstance[Number index];
//像操控数组一样控制united实例元素
unitedInstance._(String methodName,arg1,arg2,............);
名称 | 描述 |
clear | 清空所有包含的常规模块实例,使用方法如 unitedInstance._("clear"); |
push | 在united实例中增加一个新的常规模块实例 |
splice | 删除从 index 处开始的零个或多个元素,参考数组的splice方法,使用方法例如 unitedInstance._("splice",2,1) |
indexOf | 获取指定常规模块实例的index索引位置 |
has | 判断是否已经存在指定的常规模块实例 |
remove | 将对应index索引号的常规模块实例从united实例中移除 |
merge | 将另一个united实例对象或者一个数组合并到当前的united实例对象中 |
each | 遍历united所有常规模块实例元素 |
另外,联合模块实例还有一个each方法,该方法用于遍历united对象下的所有模块实例元素,使用方法参考Std.each与数组each成员.
Object Std.unite(Object module,Function mainFunc);
Object Std.unite(Object module,Function mainFunc,Object publicMembers);
名称 | 类型 | 描述 |
module | Object | 指定的模块对象 |
mainFunc | Function | 联合模块的主函数 |
publicMembers | Object | 需要额外增加的公有成员函数 |
//创建一个模块
var module1 = Std.module({
public:{
func1:function(){
console.log("number:" + this.n);
}
},
main:function(n){
this.n = n;
}
});
//根据上面的模块创建一个united模块
var unitedModule1 = Std.unite(module1);
//创建一个united实例
var unitedInstance = new unitedModule1;
//在united实例里面加入2个新实例
unitedInstance._([new module1(1), new module1(2)]);
//在united实例里面加入1个新实例
unitedInstance._(new module1(3));
//删除索引为2的实例
unitedInstance._("remove",2);
//清空united
unitedInstance._("clear");