Javascript,执行函数
Javascript, execute function
我有下一个函数
var hideAll = function() {
// code
return ///...
};
我正在使用这个函数,就像在另一个函数中使用回调一样
当我像一样使用它时
function (params, hideAll) {}
一切都很好,但当我使用时
function (params, hideAll() ) {}
一切都不顺利!
所以我的问题是,hideAll
和hideAll()
函数执行之间有什么区别?
hideAll
-这是对函数的引用hideAll()
-这是函数的执行,其结果
function (params, hideAll) {}
是一个正确的函数定义,
而CCD_ 6不是-您不能调用函数定义中的另一个函数。
然而,您仍然可以编写以下有效代码:
var hideAll = function() {
// code
return ///...
};
var functionWithCallback = function(callback){
callback();
}
var closureReferringHideAll = function(){
hideAll();
}
// The following two lines will do exactly the same in current context,
// i.e. execute hideAll.
functionWithCallback(hideAll);
closureReferringHideAll();
hideAll()不是函数,它是执行函数的结果。
function hideAll(){
return 0;
}
hideAll()-数字0
hideAll-函数
在Javascript和许多其他语言中,函数是"第一类对象",这意味着您可以调用/执行函数,但也可以将函数存储在变量或数组中,或者可以将函数传递给另一个函数。
请注意,我不是在谈论传递调用函数所产生的值。。。而是功能本身。考虑:
function test10(f) {
for (var i=0; i<10; i++)
alert(f(i));
}
function square(x) { return x*x*; }
function cube(x) { return x*x*x; }
test10(square);
test10(cube);
最后两行传递函数(square
和cube
)作为函数test10
的参数。
()
语法告诉Javascript您想要进行调用,并且不仅可以用于函数名,还可以用于任何表达式,如变量或数组元素。。。例如:
var f_arr = [square, cube];
for (var i=0; i<2; i++)
alert(f_arr[i](i+42)); // Will call square(42) and cube(43)
实际上在Javascript中的代码
function square(x) {
return x * x;
}
与不同但相似
square = function(x) {
return x * x;
};
因此定义一个函数实际上接近于分配一个变量
让我们退一步,假设您将调用一个方法foo
第一个是这样的:
foo(params, hideAll() ) {}
这使用hideAll的返回值作为值
而
foo(params, hideAll) {}
使用hideAll函数本身作为值
然而,您实际尝试做的是声明这样的函数:
function (params, hideAll() ) {}
这毫无意义。不能用与参数列表中的参数不同的任何东西来声明函数。
因此,尽管这两种形式对函数调用都是合法的(仍然有完全不同的含义),但后者对
相关文章:
- 等待回调函数执行
- 暂停函数执行流程,直到ajax请求完成
- Bigcommerce-是否可以在函数执行后更改文本
- 如何对jquery中的未命名函数执行.call()
- 等待函数执行后再继续
- mootools类型的函数将文本作为函数执行
- 停止从另一个函数执行Javascript函数
- Jquery回调函数执行多次
- 如何使即兴 jquery 暂停当前函数执行
- JavaScript 双函数执行
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 如何在 JS 中调用 2 次或更多次时延迟函数执行
- 函数执行的次数超出预期
- JS中函数执行错误
- 为什么这个函数执行了两次
- 从子函数执行父函数;t更新父级'的属性
- 如何在jQuery函数执行's处于活动状态
- 使用javascript函数执行php文件
- jQuery函数执行顺序
- javascript中同步函数执行中的问题