hh5*_*188 0 javascript events event-handling
可能重复:
javascript语法:函数调用和使用括号
t.onclick = doSomething
t.onclick = doSomething()
Run Code Online (Sandbox Code Playgroud)
这两个活动注册有什么不同?
有时候我会混淆他们,添加一个括号似乎不会造成大问题?
第一个分配doSomething对该onclick属性的引用.第二分配返回值的doSomething.除非doSomething返回一个函数,否则这不太可能是你想要的.
分配参考:
function doSomething() {
console.log("something");
}
//When t is clicked, "something" is logged
t.onclick = doSomething;
Run Code Online (Sandbox Code Playgroud)
分配返回值:
function doSomething() {
console.log("something");
}
//"something" is logged immediately. When clicked, nothing happens
t.onclick = doSomething();
Run Code Online (Sandbox Code Playgroud)
分配返回的函数:
function doSomething() {
return function() {
console.log("something");
};
}
//When t is clicked, "something" is logged
t.onclick = doSomething();
Run Code Online (Sandbox Code Playgroud)