【发布时间】:2015-12-08 13:07:03
【问题描述】:
var variableOne;
var variableTwo;
var variableThree;
function veryInterestingFunction() {
var variableFour;
if(a){
variableFour = 'Good';
}
else {
variableFour = 'Decent';
}
console.log(variableFour);
}
$(window).on('scroll', function(){
veryInterestingFunction();
});
这里我有一些全局范围内的变量,一个声明变量并为其赋值的函数,并在滚动时调用此函数。 这样在每个卷轴上,您都将声明“variableFour”,这不是一个好习惯,对吧? 但是,我不想在全局范围内塞满不必要的变量,并且也不能使用 IIFE。是否有一种“最佳实践”方式来声明函数外部的变量,并且仍然只能在该函数的范围内使用它?
【问题讨论】:
-
你的逻辑说“局部变量不好”——事实并非如此。在您的示例中,如果
variableFour仅在veryInterestingFunction中使用,那么这就是它所属的位置。 -
没有在滚动时声明变量,不好的做法?
-
不,在我看来,我永远不会以(错误的)效率理由提升到全球范围,请参阅JavaScript: Event Handlers: Where to declare variables - local or closure (vs overhead)?
标签: javascript scroll scope