下面两种代码风格有什么区别
What's the difference between below two code styles
代码1:
var x=(function(){
return {
greet:function(){
alert('Hello from code1');
}
};
})();
代码2:
var x=function(){
return {
greet:function(){
alert('Hello from code2');
}
};
}();
两者都将被调用为:
x.greet();
在样式 1 中,我将自执行函数括在括号内,而在第二个代码中则不是。两者工作相同。
那么code1和code2有什么区别,哪个是还押方式呢?
两个示例之间的差异很小。两者都从立即调用函数的 return 值创建变量。第一个用括号括起来,作为表达式,第二个是立即调用的函数。另见 What do parentheses surrounding a object/function/class declaration mean?
没有实际区别。有些人更喜欢一种方式,类似于将左大括号放在同一行或下一行,或制表符与空格,或写 x=1+2
而不是 x=(1+2)
的偏好。
额外的括号可以增加清晰度或混乱度,这完全取决于样式偏好。
代码1:
var x=(function(){
return {
greet:function(){
alert('Hello from code1');
}
};
})();
代码2:
var x=function(){
return {
greet:function(){
alert('Hello from code2');
}
};
}();
两者都将被调用为:
x.greet();
在样式 1 中,我将自执行函数括在括号内,而在第二个代码中则不是。两者工作相同。 那么code1和code2有什么区别,哪个是还押方式呢?
两个示例之间的差异很小。两者都从立即调用函数的 return 值创建变量。第一个用括号括起来,作为表达式,第二个是立即调用的函数。另见 What do parentheses surrounding a object/function/class declaration mean?
没有实际区别。有些人更喜欢一种方式,类似于将左大括号放在同一行或下一行,或制表符与空格,或写 x=1+2
而不是 x=(1+2)
的偏好。
额外的括号可以增加清晰度或混乱度,这完全取决于样式偏好。