使用频率 | 低 |
所属模块 | Std.hooker |
成员类型 | 公有成员函数 |
Object unhook(Object hooks);
Object unhook(String name);
Object unhook(String name,Function hookFunc);
Object unhook(Array names,Function hookFunc);
名称 | 类型 | 描述 |
name | String | 钩子的名称,可以支持用空格分开的多个名称,如果只有一个name参数,那么所有的该名称的钩子都会被移除. |
names | Array | 包含钩子名称的数组 |
hookFunc | Function | 钩子被触发时候执行的函数,必须与添加钩子时候的函数相等 |
hooks | Object | 钩子名称与钩子函数对应的Object对象,钩子函数必须是添加钩子时候的函数 |
//创建一个模块,使用hooker模型
var module1 = Std.module({
model:"hooker",
public:{
food:function(name){
if(this.act("eat",name) == false){
return;
}
alert("food name: " + name);
}
}
});
//创建模块的实例对象
var instance1 = new module1();
var hookFunc = function(name){
if(["shit","maggot"].has(name)){
console.log(name + " is not food!");
return false;
}
}
//添加eat这个钩子
instance1.hook("eat",hookFunc);
//移除刚添加的钩子
instance1.unhook("eat",hookFunc);
//在控制台中尝试一下这段代码,钩子已经没了
instance1.food("shit");