我在思考以下Javascript最佳实践模式。我的代码中有一个函数,它有一些嵌套函数。应该首选以下哪种模式?为什么?
function parent() {
function child1() {
//child 1 code
}
function child2() {
//child2 code
}
//parent code
return {
child1: child1,
child2: child2
};
}
或
function parent() {
var child1 = function () {
//child 1 code
};
var child2 = function () {
//child2 code
};
//parent code
return {
child1: child1,
child2: child2
};
}
答案 0 :(得分:5)
这两个版本之间的主要区别在于
var a = function(){ ...
函数是undefined
,直到此行(但变量存在),而在
function a() { ...
自封闭函数开始以来定义了函数:
console.log(a); // logs "function a(){ return 2} "
console.log(b); // logs "undefined"
function a(){ return 2};
var b = function(){ return 2};
正如Jan指出的那样,第一个版本还定义了函数的name
属性。
除此之外,没有区别,主要是风格问题,没有我所知道的最佳实践。
答案 1 :(得分:-1)
js中的所有命名函数都可以通过其名称访问。
另一个建议是。
var parent;
parent = function() {
var child1, child2;
child1 = function() {};
child2 = function() {};
return {
child1: child1,
child2: child2
};
};