最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
JavaScript回调函数的3种用法
时间:2016-04-23 编辑:简简单单 来源:一聚教程网
js 回调函数大致有以下三种用法,
1,直接回调
2,call回调
3,apply回调
回调函数作用得当,减少代码冗余,代码可读性增强,代码维护也轻松很多。
什么要用到回调函数呢?
当有很多地方需要调用同一个函数,并且这一函数根据不同的需要,作不同的处理,这个时候用回调函数就特别合适了。
一,直接回调
function son () {
alert('tank test');
}
function son1 () {
alert('tank test1');
}
function father (callback) { //公共函数
callback();
callback.call();
}
father(son); //传son,回调son函数
father(son1); //传son1函数,回调son1函数
在不传参数的情况下,callback(),callback.call()功能是一样的。
二,call和apply回调
1,call和apply区别
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
apply([thisObj[,argArray]])
call和apply基本上差不多,只是语法上面的不同。thisobj能继承并替换目标函数中的this对象,下面会实例说明。
2,方法类中回调
function son(name){
this.sonName = name;
this.showSonName = function(){
alert(this.sonName); //弹出tank
alert(this.fatherName); //弹出father,这是父级中的属性,有没有php extends的感觉
}
}
function father(name){
this.fatherName = 'father';
this.showFatherName = function(_callback){
_callback = eval(_callback);
_callback.call(this,name);
//_callback.apply(this,Array(name));
}
}
var fa = new father("tank");
fa.showFatherName('son'); //传字符串的时候,使用回调的时候,要用eval转换一下
fa.showSonName();
使用call进行回调的时候,call中的this方法,会继承son的方法,并替换
3,域中回调
var son = {
name:"son",
getname:function(name){
this.fathername(); //弹father
this.name=name;
alert(this.name); //弹tank
}
}
var father = {
init:function(_callback,name){
_callback = eval(_callback);
_callback.apply(this,Array('tank'));
},
fathername:function(){
alert('father');
}
}
father.init('son.getname');
使用apply进行回调的时候,apply中的this方法,会继承son的方法,并替换
相关文章
- javascript自执行函数 03-27
- JavaScript中的函数节流的详解 11-01
- Python函数式编程 zip map filter reduce详解 08-31
- javascript只执行一次的函数详解 07-25
- javascript函数探索与总结 04-07
- JavaScript虚拟入口函数Main的方法 09-11