以下是Eloquent Javascript章节中的一段代码 - Modules。
var dayName = (function() {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
return function(number) {
return names[number];
};
})();
和此:
var dayName = function(number) {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
return names[number];
};
答案 0 :(得分:1)
javascript中这两个函数之间有什么区别
第一个返回方法,(当被调用时)将返回工作日的名称。
第二个从数组中获取索引时返回name of the weekday
本身。
这两个中的一个是不好的做法吗?
对此的回答可能因环境而异。你需要考虑这两种方法中的数组是实时的(不断更新的)还是静态的,或者是小的还是大的(然后每次创建它都没有多大意义),或使用频率(如果需要)被调用很多次,这个数组将被创建很多次)等等。
答案 1 :(得分:0)
没有不好的做法。但是第一个代码片段是更好的方法。在第一个代码中,您创建了一种模块类型的结构,其行为类似于单独的实体并且可以重用。它内部具有所有功能。