Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用函数划分范围_Javascript - Fatal编程技术网

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]之前创建一次”