Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 传递回调与传递函数之间的区别_Javascript_Jquery - Fatal编程技术网

Javascript 传递回调与传递函数之间的区别

Javascript 传递回调与传递函数之间的区别,javascript,jquery,Javascript,Jquery,我很好奇,下面的两个函数有什么不同吗 当ready时,一个正在匿名函数中传递函数,而当ready时,另一个正在传递实际命名函数 例如: <p>Not loaded yet.</p> 第二种方法: function newName() { $( "p" ).text( "The DOM is now loaded and can be manipulated.") } $(document).ready(newName()); 一个比另一个更正确吗 当ready时

我很好奇,下面的两个函数有什么不同吗

ready
时,一个正在匿名函数中传递函数,而当
ready
时,另一个正在传递实际命名函数

例如:

<p>Not loaded yet.</p>
第二种方法:

function newName() {
  $( "p" ).text( "The DOM is now loaded and can be manipulated.")
}

$(document).ready(newName());
一个比另一个更正确吗

ready
时,一个正在匿名函数中传递函数,而当
ready
时,另一个正在传递实际命名函数

是和否

我很好奇,这两者有什么区别吗

第一个是传递一个回调函数,该函数在事件触发时执行。当这一点得到解释时,甚至会起火

后者传递已解析的返回值(由于
newName
没有返回语句,因此
undefined
与第二个返回值不同)。它将返回值传递给
ready
的原因是,您立即调用函数(这看起来可能有效),然后函数传递返回值。要使它们在功能上等效,请执行以下操作:

$(document).ready(newName);
这将传递函数引用,而不会调用它。另外,如前所述,调用as
ready(func();func2();)
的语法无效

ready
时,一个正在匿名函数中传递函数,而当
ready
时,另一个正在传递实际命名函数

是和否

我很好奇,这两者有什么区别吗

第一个是传递一个回调函数,该函数在事件触发时执行。当这一点得到解释时,甚至会起火

后者传递已解析的返回值(由于
newName
没有返回语句,因此
undefined
与第二个返回值不同)。它将返回值传递给
ready
的原因是,您立即调用函数(这看起来可能有效),然后函数传递返回值。要使它们在功能上等效,请执行以下操作:

$(document).ready(newName);

这将传递函数引用,而不会调用它。另外,如前所述,调用as
ready(func();func2();)
是无效的语法。

有效地说

$(document).ready(function(){
  newName();
});

有一个小的技术区别:在第一个代码段中,传递了一个调用
newName
的匿名函数,在第二个代码段中,传递了命名函数
newName
本身

函数只是可调用的对象,可以通过它们的名称或包含函数的变量的名称来引用

请注意,
$(document).ready(newName())正在调用
newName
 — 立即 — 并将返回值传递给
ready
。这只有在
newName
返回另一个函数时才有意义,而在本例中,它不会返回另一个函数

标题还提到了类似于
$(document).ready(newName){}
。我假设这是一个输入错误,因为这不是有效的语法


$(document).ready(newName();otherName();otherName1())也不是有效的语法。

实际上,它们之间没有区别

$(document).ready(function(){
  newName();
});

有一个小的技术区别:在第一个代码段中,传递了一个调用
newName
的匿名函数,在第二个代码段中,传递了命名函数
newName
本身

函数只是可调用的对象,可以通过它们的名称或包含函数的变量的名称来引用

请注意,
$(document).ready(newName())正在调用
newName
 — 立即 — 并将返回值传递给
ready
。这只有在
newName
返回另一个函数时才有意义,而在本例中,它不会返回另一个函数

标题还提到了类似于
$(document).ready(newName){}
。我假设这是一个输入错误,因为这不是有效的语法


$(document).ready(newName();otherName();otherName1())也是无效语法。

谢谢!他们问,因为前者不起作用,但后者起作用<代码>$(文档).ready(newName();otherName();otherName1())是一个工作异常的代码。@JoshChristensen:我不知道你在哪里看到的,但这是一个语法错误。您可能想要
$(document).ready(函数(){newName();otherName();otherName1();})@JoshChristensen在第一次传递回调时,该回调在事件触发器上执行。第二,您首先调用函数(因此似乎可以工作),然后将函数的返回值传递给
ready
,这是没有意义的。我知道这不是有效的语法,但有人解释说它有效。因为语法不正确,所以我不知道怎么做。@JoshChristensen这不是有效的语法,第一个例子应该可以。不知道他们在告诉你什么,但那是不正确的谢谢!他们问,因为前者不起作用,但后者起作用<代码>$(文档).ready(newName();otherName();otherName1())是一个工作异常的代码。@JoshChristensen:我不知道你在哪里看到的,但这是一个语法错误。您可能想要
$(document).ready(函数(){newName();otherName();otherName1();})@JoshChristensen在第一次传递回调时,该回调在事件触发器上执行。第二,您首先调用函数(因此似乎可以工作),然后将函数的返回值传递给
ready
,这是没有意义的。我知道这不是有效的语法,但有人解释说它有效。因为语法不正确,所以我不知道怎么做。@JoshChristensen这不是有效的语法,第一个例子应该可以。不确定他们在告诉你什么,但这只是不正确的
$(document).ready(newName())新代码