Javascript中两种形式定义函数的区别
Javascript中两种方式定义函数的区别相信两种方式大家都用过,但未必所有人都知道其 区别,内部原理。Js代码
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。