我想知道 javascript 开发人员社区对何时嵌套和何时拆分代码有何看法
基本上可以说你在 IIFE 中运行一些代码
为什么很多时候我看到类似的东西
(function(context) {
context.bang = {
someTing: function() {
//a lot of code
},
someTingElse: function() {
//a lot of code
}
}
}(this));
对比
(function(context) {
function doSomething() {
// a lot of code
}
function doSomethingElse() {
// a lot of code
}
context.bang = {
someTing : doSomething,
someTingElse : doSomethingElse
}
}(this));
我发现第二段代码更具可读性,如果你想压缩它,请通过谷歌的闭包编译器之类的东西发送它,它将获取代码的第二个版本并将其压缩为基本上你没有想到的第一个 + 技巧. 代码由人维护,由编译器优化,由应用程序运行。
编辑:
虽然在这个例子中并不明显,但让我们保持将子函数放在子函数中的趋势,而且我也不关心什么比我的 iife 中的其他东西更具范围,只要没有任何东西重新进入context
但沿着同样的趋势,我看到的大多数实际最终代码的最终结果就像
(function(context) {
context.bang = {
someTing: function() {
return {
another: function() {
return {
yetAnotherFunction: function() {
return true;
}
}
}
};
}
}
}(this));
每个功能级别的深度不仅仅是我在这里制作的一两个行功能,而不是
(function(context) {
function yetAnotherFunction() {
return true;
}
function another() {
return yetAnotherFunction;
}
function someTing() {
/*blahblahblah*/
return another;
}
context.bang = {
someTing: someTing
}
}(this));