js-event

var webglbtn = document.getElementById(‘webglbtn’);
//webglbtn.addEventListener(‘mouseover’,getWebGL());
webglbtn.onclick = function(){
getWebGL();
}

function getWebGL(){
alert(‘text’);
}

今天在学习webgl的时候,在html中写了个btn,在js中绑定一个函数,可是我还未点击btn的时候,该方法就执行了,就像是初始化页面加载的一样。
在网上查找原因,原来是我的方法书写有误。
正确写法:
webglbtn.onclick = function(){
    getWebGL();
}
错误写法:
webglbtn.onclick = getWebGL();
这种写法的意思就是等号右边的方法赋值给了左边的btn属性,在语句执行得时候右边必须被求值(被执行),也就是自动执行了方法的内容。
你把alert(‘xxx’)的返回值赋值给xxx.onclick了

html中 onclick=’getWebGL()’ 被解析为 xxx.onclick = function(){
    xxx;
}