您的位置:首页 > Web前端 > JavaScript

js函数的赋值和调用

2016-06-08 19:10 246 查看
今天遇到一个很奇特的问题,我谢了一个测试js先声明的方法,能否调用后声明的方法,结果发现了这个问题:

demo.html代码如下:

<html>
<head>
<script src="demo.js"></script>
</head>
this i my js test!
<div id="test"></div>
<button id="button">mybutton</button>
</html>

demo.js代码如下:
print=function(){
alert("i print out content");
realPrint();

};

realPrint=function(){

document.getElementById("button").onclick=print();
};

window.onload=print();

最后发现,html还没有加载完就,就调用了print()方法,而且,alert的类容无线循环调用了。
正确的代码是:

document.getElementById("button").onclick=print;
window.onload=print;

原因是加上括号后,相当于方法的调用,所以,html还没加载完,就调用了print方法,还未点击test按钮,就运行了print方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: