onclick的实现

时间:2012-11-28 16:39:53

标签: javascript

假设我们有:

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

我们可以加入onclick:

  1. onclick="Validate"
  2. onclick="Validate()"
  3. onclick="Validate();"
  4. 我的问题是这3个实现之间有什么区别

4 个答案:

答案 0 :(得分:6)

  1. 不会执行该功能,它将返回该功能(尝试:console.log(Validate)
  2. 将执行该功能。
  3. 与#2完全一样,执行该功能。
  4. 因此,功能上#2和#3之间没有区别。

    请注意,内联事件处理程序是不良做法,like mentioned in this commentjbabey

答案 1 :(得分:0)

onclick =&#34; Validate();&#34;和onclick =&#34;验证()&#34;是不存在的。分号在javascript中是可选的,因此您的代码将是相同的。

了解onclick =&#34; Validate&#34;之间的区别另外两个,你需要了解一下Javascript中括号的使用。

基本上,

onclick="Validate()" 

将执行函数&#34; Validate&#34;并返回该函数返回的任何内容。

onclick="Validate" 

将返回实际功能&#34;验证&#34;。

请参阅此处以获得更全面的解释:javascript syntax: function calls and using parenthesis

答案 2 :(得分:0)

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

因为这个('void'事物)对于很多类似的编程语言(php,Actionscript等)来说差不多,但并不完全相同,而且它有点模糊,我不能告诉你确切地说,这在JS中是什么。

之间的区别 onclick="Validate()"onclick="Validate();"在功能方面没有任何意义。分号;将代码片段彼此分开,因此如果您在Validate()函数之后调用另一个函数,则需要它。在这种情况下,onclick="Validate()"onclick="Validate();"之间没有区别 {{1}}。

答案 3 :(得分:-2)

他们之间没有区别。