javascript中,函数也是对象。
先说下js的两种定义函数对象的方式:
写道
function commMethod(){
alert("commMethod is doing something");
}
var commMethod = function(){
alert("commMethod is doing something");
}
上面的两种定义方式本质上是一样的。所以如果将这两个函数当做对象传递的时候,写法也是一样的。
下面看一下javascript中,函数当做对象传递的例子
//被调用的方法
function commMethod
(){
alert("commMethod is doing something");
}
//调用函数commMethod
的方法
function methodInvoke(method){
method();
}
methodInvoke(commMethod);
很显然,上面的例子也可以这么写
var commMethod
= function(){
alert("commMethod is doing something");
}
//调用函数commMethod
的方法
function methodInvoke(method){
method();
}
methodInvoke(commMethod);
这两种的方式是一样的。
当然,我们也可以不定义commMethod,直接用无具名的对象
调用。
function methodInvoke(method){
method();
}
methodInvoke(function(){
alert("commMethod is doing something");
});
这种写法和上面的写法是一样的。
下面写一种带参的调用:
//被调用的方法
function commMethod(keword){
alert("commMethod is doing something" + keword);
}
//这个和function commMethod这种定义的方式效果一样,不再单独写。
/**var commMethod = function(keword){
alert("commMethod is doing something" + keword);
}**/
//调用函数commMethod方法
function methodInvoke(method){
var keyword = " hi,girl";
method(keyword);
}
methodInvoke(commMethod);
结果
commMethod is doing something hi,girl"
如果用无具名函数进行调用,你会不会迷糊呢?反正我一开始迷糊了。
function methodInvoke(method){
var keyword = " hi,girl";
method(keyword);
}
methodInvoke(function(key){
alert("无具名函数的调用:::" + key);
});
结果:
无具名函数的调用::: hi,girl
无具名函数的调用和上面的函数调用过程是一样的,只不过比较难理解一些。
看完了上面的过程,你再看下jquery的ajax请求里面的get方法
$.get("test.php", function(data){
alert("Data Loaded: " + data
);
});
对于data的值怎么来的,是不是倍感亲切了。
分享到:
相关推荐
6.5把一个函数当做参数传递给另一个函数 6.6实现递归算法 6.7创建能够记住其状态的函数 6.8使用一个通用的科里化函数提高应用程序性能 6.9使用缓存计算(Memoization)来提高应用程序性能 6.10使用匿名...
但在Javascript中函数作为一等公民,既可以当做参数传递,也可以被当做返回值返回。所谓高阶函数就是可以把函数作为参数,或者是将函数作为返回值的函数。这两种情形在实际开发中有很多应用场景,本文是我在工作学习...
参数说明 callback: 要对每个数组元素执行的回调函数。 thisObject : 在执行回调函数时定义的this对象。 ...如参数 thisObject 被传递进来,它将被当做回调函数(callback)内部的 this 对象,如
此文适合JavaScript入门级选手阅读,在JavaScript里什么叫Callback“回调函数”,把方法b当做一个参数传递个方法a,当方法a执行完后执行另外一个指定函数(这里是b函数),感兴趣的朋友可以了解下哈
但是我对它进行了测试,发现有很多错误,或者是函数过期,或者是替换字符串写错,还有对javascript的转换函数中缺少对”\”的转换.于是对其进行了修正,然后测试就成功了!比如我上面的例子,若使用该组件的话只需要: ...
函数可以被当做参数传递给其他函数,可以作为另一个函数的返回值,还可以被赋值给一个变量// 被赋值给变量const foo = function() {// 用变
First-class functions 是指在某些语言里,函数是一等公民,可以把函数当做参数传递, 可以返回一个函数,可以把函数赋值个一个变量等等,反正就是正常值能做的事函数都能做。JavaScript 就是这样的
ajax的全称是asynchronous javascript and XML ,它是异步的js和XML。它是局部刷新,异步操作。 大家都知道ajax是单线程的,而且本身是同步的,但是单线程为什么可以异步...回调函数就是把函数A当做参数传递给函数B,
在AngularJS中,控制器是一个Javascript函数(类型/类),用来增强除了根作用域意外的作用域实例的。当你或者AngularJS本身通过<code>scope.$new俩创建一个新的子作用域对象时,有一个选项能让你将它当做参数传递给...