Javascript 使用函数划分范围
提供了以下使用函数标定范围的示例:Javascript 使用函数划分范围,javascript,Javascript,提供了以下使用函数标定范围的示例: var dayName = function() { var names = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; return function(number) { return names[number]; }; }(); 我不清楚上述方法与简单方法相比如何提供任何好处(范围界定和名称污染方面)
var dayName = function() {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
return function(number) {
return names[number];
};
}();
我不清楚上述方法与简单方法相比如何提供任何好处(范围界定和名称污染方面):
function dayName(number) {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
return names[number];
}
在第一个示例中,name数组将只创建一次,直到它的对象在范围内。如果值是从文件或数据库中获取的,则此选项非常有用 在第一个示例中,name数组将只创建一次,直到它的对象在范围内。如果值是从文件或数据库中获取的,则此选项非常有用 在第二个示例中,将为
dayName
的每次调用创建数组names
,然后释放。第一个示例仅创建此数组一次。如果您经常使用dayName
和/或以较高的速率使用,这将提高性能。@t.niese:如果您经常使用它,优化编译器将跳入,发现一个微不足道的优化,您也获得了相同的性能:-)@Bergi yes这很可能是真的,特别是因为它是一个原语数组,并且数组本身无法从外部访问。在第二个示例中,将为dayName
的每次调用创建数组名称
,然后发布。第一个示例仅创建此数组一次。如果您经常使用dayName
和/或以较高的速率使用,这将提高性能。@t.niese:如果您经常使用它,优化编译器将跳入,发现一个微不足道的优化,你也得到了同样的性能:-)@Bergi yes这很可能是真的,特别是因为它是一个原语数组,数组本身无法从外部访问。我无法解析结构:“[thing]在[condition]之前创建一次”我无法解析结构:“[thing]在[condition]之前创建一次”