读书人

Javascript中两种形式定义函数的区别

发布时间: 2012-10-25 10:58:57 作者: rapoo

Javascript中两种方式定义函数的区别
相信两种方式大家都用过,但未必所有人都知道其 区别,内部原理。

Js代码

alert(func1); // --> func1源码alert(func2); // --> undefined// 方式1function func1(x,y){// your code}// 方式2var func2 = function(x,y){// your code} 

可以看到,第一次弹出的是func1的源码,第二次却是undefined。即采用方式1(函数声明)定义函数,可以在该函数代码之上使用它,采用方式2(函数表达式)定义函数则不能在其定义前使用,只能在其定义后使用。


其内部涉及到 执行上下文(Execution context)及 激活对象(Activation object)。想更深了解的请阅读EcmaScript 5文档。


最近发现越来越多的人喜欢使用方式2定义函数,尤其在嵌套函数中。如单纯的定义一个函数个人还是习惯方式1。

读书人网 >JavaScript

热点推荐