WEB开发网
开发学院网页设计JavaScript 深入学习JavaScript中的函数 阅读

深入学习JavaScript中的函数

 2010-09-14 13:04:29 来源:WEB开发网   
核心提示: 则能够正确执行,下面的语句也能正确执行:<script language="JavaScript" type="text/javascript"><!--func();var someFunc=function func(){ale

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

<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返回“function”的对象都是函数对象。也称这样的对象为构造器(constructor),因而,所有的构造器都是对象,但不是所有的对象都是构造器。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:深入 学习 JavaScript

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接