在我学习 JavaScript 的微弱尝试中,我买了一本教你如何用 JavaScript 做事的书,但忘了说为什么。
来自 PHP,我熟悉典型的函数语法:
function name() {return;}
据我所知,它在 JS 中的工作方式相同。
然后我决定尝试在一个小项目中使用YUI 3 框架来继续学习并遇到这个... YUI Global Object
YUI().use('node', function(Y) {
Y.Node.get('#demo');
});
据我所知,这是使用 YUI() 对象的“使用”函数,将“节点”传递给“使用”函数……但是那又是什么……为什么要在其中声明一个函数另一个函数调用?
有人可以解释一下这里使用的语法吗?
还有一个很好的引用资料,它解释了类似于 php.net 的 JavaScript 一般语法,这也是有益的。 感谢您的帮助。
最佳答案
它是一个匿名函数。它被认为是回调。
在 PHP 4 和 PHP 5 的早期版本中,您可能会看到类似这样的内容:
PHP
function callback($var){
...
}
array_filter( $array, "callback" );
在 PHP 5 的更高版本中,您可以将它们定义为内联匿名函数。
所以,在 JavaScript 中,旧版本看起来像这样:
JavaScript
function use_callback(Y){
Y.Node.get('#demo');
}
YUI().use('node', use_callback);
但是通过定义一个内联匿名函数,你可以节省额外的困惑和定义的函数:
YUI().use('node', function(Y) {
Y.Node.get('#demo');
});
这两个函数是等价的。
关于Javascript 函数语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2061958/