1,下面的代码结束后 要加分好吗?xxx.onmouseover=function(){
//一些语句
}
这个大括号}后面要加分号吗?严格的讲。假如这代码不是最后一段代码。2,下面的写法 哪种比较耗资源 或者比较卡function myfun()
{
//一些语句
}
xxx.onmouseover=myfun();
和
xxx.onmouseover=function(){
//一些语句
}
相比,那个比较规范或者哪个节省资源(假设是这段代码是被setInterval调用的)3,是不是可以将所有类似下面的结构的代码<div id="mydiv" onmouseover="javascript:haha();">test....</div>
<script language="JavaScript">
<!--
function haha()
{
//一些代码
}
//-->
</script>
写成如下的形式<div id="mydiv">test....</div>
<script language="JavaScript">
<!--
mydiv.onmouseover=function(){
//一些语句
}
//-->
</script>或者<div id="mydiv2">test....</div>
<script language="JavaScript">
<!--
function myfun()
{
//一些语句
}
mydiv2.onmouseover=myfun();//-->
</script>三个问题,希望得到耐心人士的解答。热切等待中
(注意问题的逻辑)
//一些语句
}
这个大括号}后面要加分号吗?严格的讲。假如这代码不是最后一段代码。2,下面的写法 哪种比较耗资源 或者比较卡function myfun()
{
//一些语句
}
xxx.onmouseover=myfun();
和
xxx.onmouseover=function(){
//一些语句
}
相比,那个比较规范或者哪个节省资源(假设是这段代码是被setInterval调用的)3,是不是可以将所有类似下面的结构的代码<div id="mydiv" onmouseover="javascript:haha();">test....</div>
<script language="JavaScript">
<!--
function haha()
{
//一些代码
}
//-->
</script>
写成如下的形式<div id="mydiv">test....</div>
<script language="JavaScript">
<!--
mydiv.onmouseover=function(){
//一些语句
}
//-->
</script>或者<div id="mydiv2">test....</div>
<script language="JavaScript">
<!--
function myfun()
{
//一些语句
}
mydiv2.onmouseover=myfun();//-->
</script>三个问题,希望得到耐心人士的解答。热切等待中
(注意问题的逻辑)
2、第二种是匿名函数。卡不卡没影响,但是能保证这个函数不会被其他地方调用。相当于节约了一个全局函数
3、第三个是这样的,效果是一样的,后者的好处是html和js做到分离了,但是你在调用的地方不需要javascript:的~~~!
问题2: 我个人认为2种方式占用资源差不多。如果这个函数需要在其它地方调用,用第一种。不然永第2种!问题3: 完全没问题!
function myfun()
{
//一些语句
}
xxx.onmouseover=myfun();
加上括号就不是注册事件了,就是接收事件的返回值了!
对的,函数名也就相当于指针,函数handler后面加个(),就相当于执行这个函数了xxx.onmouseover=myfun;
跟
function f(){}
还是有点区别的.
第一种如果同一页面里你已经有个变量fun,那你这个函数会覆盖掉原来那个变量;
第二种如果页面有变量也叫fun2,那你调用fun2这个函数会失败,说函数未定义,不管fun2这个变量定义在函数上面还是下面,函数都会失效 var fun = 2; //var fun = function(){
// alert('var fun = function()')
//} function fun(){
alert('function fun()')
}<body onload="fun()">LZ先跑下,然后把下面的fun注释掉,上面的fun打开.看看发生什么
是探讨的声明方式之间的差异。
具体的记不太清了。
只是大概的印象。
就是 function定义的是编译时定义,而var的是执行时定义。
好像是这么个意思,也就是var执行的比function晚,所以var总会覆盖function方式定义的函数。