如题 例: test = function(){a=5} 与 function test() {a=5} 有什么区别呢,求大神指点,感谢~
2014-07-11 10:01
提问者采纳
在调用上,这两种方式定义的函数完全没有区别。如果要说区别,在定义时的相互覆盖上,会有一定的差异。例如同时使用下面几种方式同时定义同名的函数及变量:
1
2
3
4
5
6
7
8
9
10
11
12
|
1、
function
test() { 2}
var
test =
function
() { 1};
2、
var
test =
function
() { 1};
function
test() { 2}
3、
var
test =
function
() { 1};
var
test =
function
() { 2};
4、
function
test() { 1}
function
test() { 2}
|
你可以尝试一下上面定义时最终test是什么。
追问:
覆盖上有差异吗,我试了下,都是后面覆盖前面呀。无论哪种定义方式...求指点
追答:
不完全是。 以前在IE(最新的没测试过)上测试,函数会覆盖var方式,chrome则相反,但同为函数或者同为var方式(即3,4),则是后面的覆盖前面的。对于1、2两种覆盖,可能浏览器解析有关。所以建议尽量避免两种不同方式的覆盖定义。 就单一个函数或者var定义的函数引用来说,它们的调用方式上是没有区别的。
-
提问者评价
-
ganxie
评论
1
0
2014-07-11 09:53
网友采纳
没什么区别吧 不过一般定义 类时用 匿名函数的方式 var dog=function(a){ this.name=a }