可以编写这样的嵌套函数吗?
var player = function () {
//'use strict';
var setLives = function () {
return 3;
};
var lives = setLives();
console.log(lives);
};
player();
在jsLint中,这将是非常难看的:
var player = function () {
'use strict';
var setLives = function () {
return 3;
},
lives = setLives();
console.log(lives);
};
player();
大多数人似乎都使用以下方法:
var player = function () {
//'use strict';
function setLives() {
return 3;
}
var lives = setLives();
console.log(lives);
};
player();
使用哪种方法或者后者是首选方法是否重要?
它会减慢代码速度还是没有差别?
提前致谢!
答案 0 :(得分:1)
对于引用的代码,它没有区别;它完全是一种风格问题。
有时,人们更喜欢编写函数表达式(var setLives = function() { };
),因为这些函数表达式在函数中的代码逐步流程中发生。
有时,人们更喜欢编写函数声明(function setLives() { }
),因为它们是在处理函数中的代码的逐步流程之前处理的。
如果函数的定义根据条件而不同......
if (someCondition) {
// One definition for it
} else {
// A different definition
}
...然后必须使用函数表达式,而不是声明。