我对JavaScript中的方法/函数的命名约定有疑问。我已经看到大多数事件名称以“on”开头的地方,例如“onClick”。如果onClick调用一个函数,那么该函数名称是否应该以“on”开头?
例如:
<Button onClick={() => onClose()}>CANCEL</Button>
onClose(){
do something...
}
或者是否拥有:
<Button onClick={() => close()}>CANCEL</Button>
close(){
do something...
}
答案 0 :(得分:1)
我已经看到大多数事件名称以“on”开头,例如“onClick”。
他们没有。
on
上使用window.onload = function () ...
on
绑定JSX中的事件处理程序 Modern JS使用addEventListener
只接受事件名称作为参数(addEventListener("load", function () ...
)。
如果onClick调用一个函数,那么该函数名是否应该以“on”开头?
没有要求这样做。
我没有看到任何编码约定。
答案 1 :(得分:0)
方法/函数名称应告诉任何读取代码的人,该方法/函数的作用。
答案 2 :(得分:0)
on[name]
命名对话用于表明如果您为该属性分配了一个函数,则将为事件[name]
调用此函数。
但是为该事件调用的函数不会有on
前缀。您通常通过它所执行的操作来命名该函数。因此,如果该函数关闭某些内容,则在调用该函数时将其称为close
,例如对话框已关闭,您可以将其命名为onClose
答案 3 :(得分:0)
在命名约定时,必须注意不要在函数中隐藏其他函数。此外,最近我遇到了全局范围内名为close
的回调问题,由于其他浏览器原生函数在范围内存在而无法调用。因此,我通常会远离关闭,打开等名称,而是使用更多描述性名称作为closePopUp
等。
答案 4 :(得分:0)
您正在讨论的onXyz
约定与通过HTML事件属性(如示例中)或通过JavaScript中的DOM对象属性(即window.onload = ...
)设置事件的旧范式有关。 )。 这两种技术都存在严重缺陷,并且都不应继续使用(使用 .addEventListener()
)。**实际上,事件名称本身实际上从未以{{ 1}}。例如,on
事件称为click
,而非click
,onclick
表示on
出现时您想要执行的操作。但是,这两种过时技术对于事件注册而言是独一无二的,而不是一般的功能/方法,因此click
范例不是您应该担心的事情。
函数和方法有命名约定:
on
)。doSomethingCool
运算符来创建对象的新实例)
应写在&#34; pascal case&#34; (每个单词以a开头
大写字母)。此约定警告其他开发人员他们应该使用new
运算符调用该函数。