Js事件绑定时 函数名加括号和不加括号有什么区别

JavaScript09

Js事件绑定时 函数名加括号和不加括号有什么区别,第1张

加括号代表执行这个方法,不加括号代表把这个函数赋值给某个变量。

..以下来自百度

function al(){

alert("我擦")

}

此时,al代表这个函数的对象,al()就是直接运行了。

var nfun=al就是让nfun也指向了al,此时nfun()就相当于al()。

那么我们来说下oBtn.onclick

oBtn.onclick也就相当于一个nfun,只不过它附属于oBtn这个标签。

等号是赋值操作如果是对象,就会把对象的指向付给变量。al是对象指向,al()就是执行了函数,它最终是个什么东西,就看函数体返回什么类型,al里就一个alert,没有return任何东西,那么就相当于undefined。所以

oBtn.onclick=undeined了,你执行就没反应。

但是如果al的内部返回的是一个函数比如:

function al(){

alert("我操一次")

return function(){alert("我操两次")}

}

oBtn.onclick=al()就相当于

oBtn.onclick=function(){alert("我操两次")}

事件被触发时,你绑定的函数才被调用,aArr[i].onclick=ck这样写才可以,但ck函数就要修改成:

function

ck(){

var

url=this.getAttribute('href')

window.open(url,"nav","width=400

height=300")

}

对于一些简单的html页面,里面的js文件加载的也少的情况下,可以使用火狐的firebug或者google的控制台都可以轻松的查看.

火狐浏览器的查看方法安装Firebug然后按F12选中要看的dom元素在右侧的事件中可以详细的看到绑定了那些事件.

Google浏览器也可以用同样的方法查看对应dom元素绑定的事件.

F12-->Elements-->Event Listenners

但是对于一些复杂的Html页面,相当于加载的js文件和相应的插件也比较多,这个时候用浏览器自带的事件查看器就显得力不从心了!

所以遇到这种情况,,就得借助google的Visual Event插件帮助快速定位,所以首先去google 扩展库去下载对应的插件并安装.

安装成功后浏览器的右上角会出现一个小眼睛.

等页面加载完之后,点击小眼睛然后大概过不了5秒钟,就可以看到页面上元素绑定事件了.

最后移动鼠标到想查看的元素上面就可以看到对于的js文件已经和对应的事件名