1

假设我们有:

<input type="button" name="button" value="Validate Payment" onclick="Validate()" />

我们可以在onclick中放入:

  1. onclick="Validate"
  2. onclick="Validate()"
  3. onclick="Validate();"

我的问题是这三个实现之间有什么区别

4

4 回答 4

6
  1. 不会执行函数,会返回函数(try console.log(Validate):)
  2. 将执行函数。
  3. 将与#2 完全相同,执行该功能。

所以#2和#3在功能上没有区别。

请注意,内联事件处理程序是不好的做法,就像jbabey在此评论中提到的那样。

于 2012-11-28T16:42:59.093 回答
0

onclick="Validate();" 的区别 并且 onclick="Validate()" 不存在。分号在 javascript 中是可选的,因此您的代码将是相同的。

要理解 onclick="Validate" 和其他两者的区别,需要对 Javascript 中括号的使用有所了解。

基本上,

onclick="Validate()" 

将执行函数“验证”并返回该函数返回的任何内容。

onclick="Validate" 

将返回实际函数“Validate”。

有关更完整的说明,请参见此处:javascript 语法:函数调用和使用括号

于 2012-11-28T16:47:48.500 回答
0

函数名后面的括号()代表“void”,至少在默认情况下,这是正确执行函数所必需的。在某些情况下,您需要在这些括号之间输入一些内容,这与函数一起称为“传递值”。

由于这(“无效”的东西)对于许多类似的编程语言(php、Actionscript 等)来说几乎但不完全相同,而且它是一种模糊的东西,我不能确切地告诉你这是什么虽然是在 JS 中。

onclick="Validate()" 和 之间的区别在于 onclick="Validate();"功能方面没有。分号;将代码片段彼此分隔,因此如果您要在 Validate() 函数之后调用另一个函数,则需要使用分号。onclick="Validate()"在这种情况下,和 之间没有区别onclick="Validate();"

于 2012-11-28T19:18:56.433 回答
-2

他们之间没有区别。

于 2012-11-28T16:42:20.093 回答