Questions tagged «anonymous-function»

匿名函数使用代码块作为值,将其定义为没有名称的内联函数。

19
为什么需要在同一行上调用匿名函数?
我读了一些关于闭包的文章,到处都看到了,但是没有明确的解释它是如何工作的-每当我被告知要使用它时……: // Create a new anonymous function, to use as a wrapper (function(){ // The variable that would, normally, be global var msg = "Thanks for visiting!"; // Binding a new function to a global object window.onunload = function(){ // Which uses the 'hidden' variable alert( msg ); }; // …

10
解释封装的匿名函数语法
摘要 您能解释JavaScript中封装的匿名函数的语法背后的原因吗?为何起作用:(function(){})();但这不起作用function(){}();? 我知道的 在JavaScript中,将创建一个命名函数,如下所示: function twoPlusTwo(){ alert(2 + 2); } twoPlusTwo(); 您还可以创建一个匿名函数并将其分配给变量: var twoPlusTwo = function(){ alert(2 + 2); }; twoPlusTwo(); 您可以通过创建一个匿名函数来封装代码块,然后将其包装在方括号中并立即执行: (function(){ alert(2 + 2); })(); 在创建模块化脚本时,这很有用,以避免因潜在冲突的变量而使当前范围或全局范围混乱(例如Greasemonkey脚本,jQuery插件等)。 现在,我明白了为什么这样做了。方括号将内容括起来,仅显示结果(我敢肯定有一种更好的描述方式),例如with (2 + 2) === 4。 我不明白的 但是我不明白为什么这不能同样有效: function(){ alert(2 + 2); }(); 你能跟我解释一下吗?

6
匿名递归PHP函数
是否可以具有递归和匿名的PHP函数?这是我尝试使其工作,但未传递函数名称。 $factorial = function( $n ) use ( $factorial ) { if( $n <= 1 ) return 1; return $factorial( $n - 1 ) * $n; }; print $factorial( 5 ); 我也知道这是实施阶乘的一种不好方法,这只是一个例子。

19
javascript:递归匿名函数?
假设我有一个基本的递归函数: function recur(data) { data = data+1; var nothing = function() { recur(data); } nothing(); } 如果我有匿名功能,例如... (function(data){ data = data+1; var nothing = function() { //Something here that calls the function? } nothing(); })(); 我想要一种调用该函数的函数的方法...我曾经在某个地方(我不记得在哪里)看到过脚本,这些脚本可以告诉您所调用的函数的名称,但是我不记得其中任何一个该信息现在。

4
自动执行匿名JavaScript函数的括号位置?
最近,我将json2.js的当前版本与项目中使用的版本进行了比较,并发现函数表达式的创建和自我执行方式有所不同。 用于将匿名函数包装在括号中然后执行的代码, (function () { // code here })(); 但现在它将自动执行的函数包装在括号中。 (function () { // code here }()); 有通过CMS在接受答案的注释解释JavaScript的封装匿名函数的语法是“既:(function(){})();和(function(){}());有效。” 我想知道有什么区别吗?前者是否通过留下全局匿名函数来占用内存?括号应位于何处?

13
JavaScript中匿名函数上的removeEventListener
我有一个包含方法的对象。这些方法被放入匿名函数内部的对象中。看起来像这样: var t = {}; window.document.addEventListener("keydown", function(e) { t.scroll = function(x, y) { window.scrollBy(x, y); }; t.scrollTo = function(x, y) { window.scrollTo(x, y); }; }); (还有很多代码,但这足以显示问题) 现在,在某些情况下,我想停止事件监听器。因此,我试图做一个removeEventListener,但我不知道如何去做。我已经读过其他问题,无法在匿名函数上调用removeEventListener,但是在这种情况下也是如此吗? 我在匿名函数内部创建了一个t方法,因此我认为这是可能的。看起来像这样: t.disable = function() { window.document.removeEventListener("keydown", this, false); } 我为什么不能这样做? 还有其他(好的)方法吗? 奖金信息;这仅在Safari中有效,因此缺少IE支持。


5
为什么要使用命名函数表达式?
我们有两种在JavaScript中执行函数表达式的方式: 命名函数表达式(NFE): var boo = function boo () { alert(1); }; 匿名函数表达式: var boo = function () { alert(1); }; 而且两个都可以用调用boo();。我真的看不到为什么/何时应该使用匿名函数以及何时应该使用命名函数表达式。他们之间有什么区别?

5
php is_function()确定变量是否为函数
我很高兴读到php中的匿名函数,它使您可以声明一个比使用create_function更容易使用的函数。现在,我想知道是否有一个传递了变量的函数,如何检查它以确定它是否是一个函数?还没有is_function()函数,当我对作为函数的变量进行var_dump时: $func = function(){ echo 'asdf'; }; var_dump($func); 我得到这个: object(Closure)#8 (0) { } 关于如何检查这是否有功能的任何想法?



5
在PHP 5.4.0之前的匿名函数中使用$ this
PHP手册指出 $this在PHP 5.4.0之前无法从匿名函数使用 在匿名功能页面上。但是我发现我可以通过分配$this给变量并将变量传递给use函数定义的语句来使其工作。 $CI = $this; $callback = function () use ($CI) { $CI->public_method(); }; 这是一个好习惯吗? 有没有更好的方法来$this使用PHP 5.3访问匿名函数内部?

3
匿名函数速记
对于使用缩写符号#(..)的匿名函数,我有些不了解。 以下作品: REPL> ((fn [s] s) "Eh") "Eh" 但这不是: REPL> (#(%) "Eh") 这有效: REPL> (#(str %) "Eh") "Eh" 我不明白的是为什么(#(%)“ Eh”)不起作用,同时我不需要在((fn [s] s)“ Eh”)中使用str 它们都是匿名函数,并且都采用一个参数。为什么速记符号需要功能而其他符号则不需要?


2
如何调用作为类变量的闭包?
class MyClass { var $lambda; function __construct() { $this->lambda = function() {echo 'hello world';}; // no errors here, so I assume that this is legal } } $myInstance = new MyClass(); $myInstance->lambda(); //Fatal error: Call to undefined method MyClass::lambda() 那么达到类变量的正确语法是什么?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.