什么'这是javascript中t.onclick=doSomething和t.onclick=doSometi
What's the differences between t.onclick = doSomething and t.onclick = doSomething() in javascript?
可能重复:
javascript语法:函数调用和使用括号
t.onclick = doSomething
t.onclick = doSomething()
这两个活动注册有什么不同?
有时我会对它们感到困惑,加一个括号似乎不会造成大问题?
第一个将对doSomething
的引用分配给onclick
属性。第二个分配doSomething
的返回值。这不太可能是您想要的,除非doSomething
返回一个函数。
指定参考:
function doSomething() {
console.log("something");
}
//When t is clicked, "something" is logged
t.onclick = doSomething;
分配返回值:
function doSomething() {
console.log("something");
}
//"something" is logged immediately. When clicked, nothing happens
t.onclick = doSomething();
分配返回的函数:
function doSomething() {
return function() {
console.log("something");
};
}
//When t is clicked, "something" is logged
t.onclick = doSomething();
引用对象的方式在JS中意义重大。doSomething;
和doSomething();
之间存在差异,因为前者引用函数,后者引用函数的return value
。让我们看看这个例子,你就会明白我的意思。doSomething();
不仅调用函数,而且返回函数的return value
:
function doSomething() {
return 5;
}
console.log(doSomething); // function() { return 5; }
console.log(doSomething()); // 5
所以做t.onclick = doSomething;
就像说t.onclick = function() { return 5; };
相关文章:
- 如何在执行此特定onclick事件时执行JavaScript函数
- Setting default onclick behavior for <img> tag in gene
- Javascript全局onclick监听器
- 如何调用“;链接_;在onclick事件上使用Javascript
- onclick函数需要双击,因为类分配延迟
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 使用onclick绘制SVG路径
- 如何将数据从onclick按钮传递到变量
- 选择onclick事件jquery
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- 如何刷新列表框内容onclick或blur事件
- OnClick/Onhover Javascript/jquery
- 执行php函数的onclick事件的其他替代方案
- Javascript onclick函数会立即调用(而不是在单击时调用)
- 动态创建OnClick事件Javascript
- onclick风格的整个李不想要
- jquery Onclick函数带有导致双击的回调排序函数
- 使用element简化onclick函数
- 将函数从onclick修改为onload
- 什么'这是javascript中t.onclick=doSomething和t.onclick=doSometi