使用频率 | 高 |
所属模型 | hooker |
成员类型 | 公有成员函数 |
act方法用于触发指定名称的钩子,如果没有使用hook方法添加该名称的钩子,那么会返回true,如果钩子函数返回了false那么该方法会返回false
该方法一般都在设计一个功能时候使用,在功能中的关键代码位置使用act方法来执行钩子.
Boolean act(String name);
类型 | 描述 |
String | 钩子的名称 |
//设计一个拥有钩子功能的模块
var module1 = Std.module({
model:"hooker",
public:{
put:function(number){
//触发put钩子
if(!this.act("put",number)){
return;
}
Std.ajax.post("/action.php",{
number:number
});
},
print:function(text){
//触发print钩子
if(!this.act("print",text)){
return;
}
console.log(text);
}
}
});
var instance1 = new module1();
//添加put钩子,如果金额小于500,put函数将不会往下执行
instance1.hook("put",function(number){
if(number < 500){
return false;
}
});
//添加text钩子,如果输出的文本内容带有 "fuck",便停止执行,并且输出 "this message has been blocked!"
instance1.hook("print",function(text){
if(text.has("fuck")){
console.log("this message has been blocked!")
return false;
}
});
//执行put方法,金额大于500,向/action.php发送了提交请求
instance1.put(600);
//执行put方法,金额小于500,那么什么也不做
instance1.put(499);
//执行print方法,输出 "hello,how are you"
instance1.print("hello,how are you");
//执行print方法,带有 "fuck" 关键字,输出 "this message has been blocked!"
instance1.print("fuck your fat ass");