html内联事件处理程序和不显眼事件处理程序之间括号的不同用法

时间:2016-04-07 16:38:26

标签: javascript

当我想在加载页面时执行脚本myFunction(){}时,我有两个选择。

1 <body onload="myFunction()">
2 <script> window.onload = myFunction </script>

我的问题是为什么我们在第一种情况下需要括号而在第二种情况下不需要括号?它背后的理论是什么?

2 个答案:

答案 0 :(得分:0)

属性版本可以追溯到Javascript的早期阶段,并且不够先进以支持引用函数的概念,而不是声明要评估的脚本片段。如今,那些倡导现代Javascript技术的人对它的使用不屑一顾。

答案 1 :(得分:0)

<body onload="myFunction()">

是一个函数调用:当加载页面时,调用该函数。

<script> window.onload = myFunction </script>

是对函数对象的引用。这是一个更好的解决方案,如果只是因为内联javascript令人讨厌,它混合了HTML和javascript,而脚本可以单独编写和管理。