js中函数调用,加括号和不加括号,加引号和不加引号的区别

来源:互联网 发布:17173抢号软件 编辑:程序博客网 时间:2024/04/29 06:40

这个问题困扰了我很久,一直没想通,后来找了大量的资料,算是明白了点,和大家分享一下,如果解释有问题希望大家指出,一起学习

<span style="font-size:18px;"><html><title>JavaScript测试</title><script type="text/javascript">  function showtime(){<span style="white-space:pre"></span>      var a=fun;     var b=fun();<span style="white-space:pre"></span> alert(a);<span style="white-space:pre"></span> alert(b);       }   function fun(){       return 5   }</script><body onLoad="showtime()"></body><html></span>
a是fun函数,b是5,如果没有返回值的情况下是undefined,这样就很容易想清楚这样一个问题

<span style="font-size:18px;"><html><title>JavaScript测试</title><script type="text/javascript">  function showtime(){  var dom = document.getElementById("time");      var date = new Date();      dom.innerHTML=date;  setTimeout(<span style="color:#ff0000;"><strong>show</strong></span>,1000);  }  function show(){ alert("test");  }</script><body onLoad="showtime()">当前时间:<div id="time"></div></body><html></span>
上面在延时的时候为什么写成show有延时,写成show()时候直接弹出对话框了,因为show()本身就是一个结果,那么问题来了,那写成"show()"为什么又可以了呢!

原因是:写成字符串的时候它会和eval()的执行原则一样,可以这样理解,把它当成了一段字符串格式的js代码执行,还是相当于一个函数的调用。

不知道能不能帮到你,如果你有更好的解释记得和我分享一下,一起学习



0 0
原创粉丝点击