JS回调函数的理解

原创 2013年12月04日 10:16:43
JS Api 里这样解释:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.
我的理解就是方法名称作为参数传递到parent方法,parent方法执行完了之后再执行接收的参数(方法名称)
<script>

function test(param){
	alert("传递的参数是:"+param)
}

function callback(func){
	if(func && (func instanceof Function)){
		func("i am param");
	}
}

callback(test);

</script>
 
 模拟jquery中each方法回调函数
//回调方法没有参数,但是在运行的时候给了参数
function callbackNoParam(func){
	if(func && (func instanceof Function)){
		func.call(this,"number");
	}
}

//回调方法有参数,运行的时候给了参数number
function callbackHasParam(func){
	if(func && (func instanceof Function)){
		func.call(this,"number");
	}
}

callbackHasParam(function test(num){
	 if(undefined === num){   
        alert("param is not past");   
    }else{   
        alert(num);   
    }
});//弹出信息 number

callbackNoParam(function test1(){
	alert(1);
});//弹出信息 1
 
备注:call和apply的区别——call后面添加多个未知参数,apply第二个参数是数组
 foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments) == this.foo(arg1, arg2, arg3)
call, apply作用就是借用别人的方法来调用,就像调用自己的一样.
 
jquery关于each的源码
each : function (object, callback, args) {
	var name,
	i = 0,
	length = object.length,
	isObj = length === undefined || jQuery.isFunction(object);

	if (args) {
		if (isObj) {
			for (name in object) {
				if (callback.apply(object[name], args) === false) {
					break;
				}
			}
		} else {
			for (; i < length; ) {
				if (callback.apply(object[i++], args) === false) {
					break;
				}
			}
		}

		// A special, fast, case for the most common use of each
	} else {
		if (isObj) {
			for (name in object) {
				if (callback.call(object[name], name, object[name]) === false) {
					break;
				}
			}
		} else {
			for (var value = object[0];
				i < length && callback.call(value, i, value) !== false;
				value = object[++i]) {}
		}
	}

	return object;
},
 
 备注:参数object是一个数组,也可以是查询出来的对象或则是控件
callback.call(object[name], name, object[name]) 表示遍历的当前对象有callback方法功能,并执行这个方法,参数name是数组坐标(序列号),object[name]是数组坐标的值(序列号对应的值)。
 

js 回调函数

  • 2013年04月12日 18:23
  • 29KB
  • 下载

js回调函数的理解

 一、什么是Javascript 回调函数?   1、函数和其他数据一样可以被赋值,删除,拷贝等,也可以把函数作为参数传入到另一个函数中。回调函数,其实就是把函数作为参数传到函数中去运用。 ...
  • whazhl
  • whazhl
  • 2015年03月10日 08:37
  • 268

js 回调函数理解

最近换了工作,终于从只有我一个前端的环境中解放出来,也可以看到公司其他同事的代码,就自己的而言,感觉有很多都是我应该去学习的。。 面向对象编程,他们很少把一个function 放在全局下面,而且通过定...

JS 对于回调函数的理解,和常见的使用场景应用,使用注意点

很经常我们会遇到这样一种情况: 例如,你需要和其他人合作,别人提供数据,而你不需要关注别人获取或者构建数据的方式方法。 你只要对这个拿到的数据进行操作。 这样,就相当于我们提供一个外在的函数,别...

js回调函数

  • 2014年08月25日 17:33
  • 17KB
  • 下载

JS之——回调函数的简单应用(插曲)

JS无疑是前端页面与服务端交互数据的强大语言,那么如何利用JS的回调函数来封装JS的网络请求呢,本文就来简单说明这一问题 一、创建一个index.html文件 页面内容随便定义,重点是要引入如下自定义...

纠结了很久的js回调函数

自学jquery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗。迅速google之,发现原来中文翻译成回调。也就是回调函数了。不懂啊,于是在google回调函数,发现网上的中文解释实在是...

JS回调函数总结

什么是回调函数?在计算机程序设计中,回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指通过函数参数传递到其它代码的,某一块可执行代码的引用。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS回调函数的理解
举报原因:
原因补充:

(最多只允许输入30个字)