首页 教程 API文档

添加钩子

2015-10-09 10:34:28

属性


使用频率
所属模型 hooker
成员类型 公有成员函数

描述


hook方法用于添加指定名称的钩子,一个名称的钩子函数可以有无数个, 当钩子被触发的时候,会按照添加的先后顺序进行执行,一旦这个过程中某个钩子函数返回了false, 那么将会停止继续执行,并且返回false,此时,act方法得到的返回值将是一个false

语法



Object hook(Object hooks);
Object hook(String name,Function hookFunc);
Object hook(Array names,Function hookFunc);
        

参数


名称 类型 描述
name String 钩子的名称,可以支持用空格分开的多个名称
names Array 包含钩子名称的数组
hookFunc Function 钩子被触发时候执行的函数
hooks Object 钩子名称与钩子函数对应的Object对象

返回值


this对象

相关例子



//创建一个模块,使用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();

//添加eat这个钩子
instance1.hook("eat",function(name){
    if(["shit","maggot"].has(name)){
        console.log(name + " is not food!");
        return false;
    }
});

//在控制台中尝试一下这段代码
instance1.food("shit");