快速业务通道

深入学习Javascript函数

作者 佚名技术 来源 网页制作 浏览 发布时间 2012-03-07
于有名函数,它可以出现在调用之后再定义;而对于无名函数,它必须是在调用之前就已经定义。例如:

  以下是引用片段:

  <script language="JavaScript" type="text/javascript">

  <!--

  func();

  var func=function(){

  alert(1)

  }

  //-->

  </script>

  这段语句将产生func未定义的错误,而:

  以下是引用片段:

  <script language="JavaScript" type="text/javascript">

  <!--

  func();

  function func(){

  alert(1)

  }

  //-->

  </script>

  则能够正确执行,下面的语句也能正确执行:

  以下是引用片段:

  <script language="JavaScript" type="text/javascript">

  <!--

  func();

  var someFunc=function func(){

  alert(1)

  }

  //-->

  </script>

  由此可见,尽管JavaScript是一门解释型的语言,但它会在函数调用时,检查整个代码中是否存在相应的函数定义,这个函数名只有是通过function funcName()形式定义的才会有效,而不能是匿名函数。

  函数对象和其他内部对象的关系

  除了函数对象,还有很多内部对象,比如:Object、Array、Date、RegExp、Math、Error。这些名称实际上表示一个类型,可以通过new操作符返回一个对象。然而函数对象和其他对象不同,当用typeof得到一个函数对象的类型时,它仍然会返回字符串“function”,而typeof一个数组对象或其他的对象时,它会返回字符串“object”。下面的代码示例了typeof不同类型的情况:

  以下是引用片段:

  alert(typeof(Function)));

  alert(typeof(new Function()));

  alert(typeof(Array));

  alert(typeof(Object));

  alert(typeof(new Array()));

  alert(typeof(new Date()));

  alert(typeof(new Object()));

  运行这段代码可以发现:前面4条语句都会显示“function”,而后面3条语句则显示“object”,可见new一个function实际上是返回一个函数。这与其他的对象有很大的不同。其他的类型Array、Object等都会通过new操作符返回一个普通对象。尽管函数本身也是一个对象,但它与普通的对象还是有区别的,因为它同时也是对象构造器,也就是说,可以new一个函数来返回一个对象,这在前面已经介绍。所有typeof返

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号