调用foo(function(params){..})的含义是什么?
What is the meaning of call: foo(function(params){...});
我知道函数被声明并立即调用,像这样
(function(arg) {...}(value))();
但是这是什么意思呢:
functionName(function(params){...});
它在Ace编辑器的demo/demo.js文件(第一个非代码行)中,这是我遇到过的最糟糕的javascript代码。我想知道它是真的写得很差,还是我太新手了,看不懂。
在本例中
outerFunc(function(params) { ... })
在一个匿名函数中包含其模块的定义,outerFunc
使用该函数来控制其定义方式。在你提到的代码中,他们使用RequireJS中的define
函数来做一些事情,包括指定依赖关系和执行上下文。
define()
是CommonJS模块规范的一部分,需要在您使用的不同JavaScript平台上以不同的方式实现。这个代码设计非常合理;它遵循了将来可能成为该语言核心部分的拟议规范。
将匿名函数传递给函数functionName()
如果它写得很差,或者你太新手,那就看情况了,因为它可能只是这种风格的一个合法的好用法。
编码不差。这是一个传递给函数functionName
的匿名函数。该函数将具有一个局部于functionName的名称,并且可以在其内部调用。这在很多情况下都是非常有用的。
sort(my_arr, function(obj1, obj2){
return obj1.age*obj1.color - obj2.age*obj2.color;
}
);
function sort(arr, compare){
// Sorts arr of objects using compare(arr[i], arr[j]);
}
这将允许你实现一个单一的排序函数sort
,它适用于所有可能的对象,只要调用者为该类型的对象提供一个比较函数。
(function(arg) {...}(value));
这不是函数调用。你可能指的是(function(params) {...}(value))(someArgs);
。
functionName(function(params){...});
这是对函数functionName
的调用,将该匿名函数作为参数传入。
这(本质上)与:
var f = function(params) { ... };
functionName(f);
或:
function f(params) { ... };
functionName(f);
考虑:
function functionName(f) {
f();
}
...
现在被调用了
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- 调用 foo() 后的 x 和 y 值是什么
- 在这种情况下,“foo[x]”是什么意思?
- jQuery"return{foo:bar,foo2:bar2}"-它是什么
- In var foo = true;“foo”的变量类型是什么
- 检查多个空值的最佳方法是什么?例如if(foo.bar.giz.mo.)X === 123)
- JavaScript语法foo:是什么意思?
- “酒吧”的目的是什么?var foo = function bar (){..}“
- 调用foo(function(params){..})的含义是什么?
- 在每个页面上执行一个Greasemonkey脚本,不管页面类型是什么(比如foo.com/image.jpg)