A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

下面给出两段代码 执行结果一样,但是不同的意义在何处?
代码一:
  1. script language = "javascript">

  2.         var square = new Function("x","y","var sum; sum = x*x+y*y;

  3. return sum;");
  4.         alert(square(3,2));
  5. </script>
复制代码

代码二:
  1. <script language = "javascript">
  2.         function square(x,y)
  3.         {
  4.                 var sum ;
  5.                 sum = x*x + y*y;
  6.                 return sum;       
  7.         }
  8.         alert(square(3,2));
  9. </script>
复制代码


这两段代码不同,但是就我看来,看不出第一种写法的意义何在啊?

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

3 个回复

正序浏览
代码一:使用Function构造函数来定义函数,存在一定的性能问题。第一次是常规的解析这条语句,第二次要把函数里的字符串解析成实际的函数。
代码二:常用的函数声明。
最好不用代码一的写法。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
mark一下!!! 没有深究!  只要区别以为一个是声明式函数,一个是赋值式函数,区别在于在JS的预编译期,声明式函数将会先被提取出来,然后才按顺序执行js代码。具体执行你自己测试一些,这个问题关乎于你想让user打开网页的速度问题吧!      我的跟着学习一下没有深究! 有大大给个专业回答!

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
继续自顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马