使用 JavaScript 递增局部变量
Incrementing a local variable using JavaScript
我正在尝试增加计数器,但我想将变量移出全局命名空间并在本地声明它。我不知道该怎么做。感谢您的帮助。
这是我目前使用的代码。
var mediaClickCounter = 0;
function refreshMediaAds() {
if (mediaClickCounter < 2) {
mediaClickCounter++;
} else {
mediaClickCounter = 0;
refreshAds();
}
}
// the function creates a local scope.
var refreshMediaAds = (function() {
var mediaClickCounter = 0;
// once executed it returns your actual function.
return function _refreshMediaAds() {
if (mediaClickCounter < 2) {
mediaClickCounter++;
} else {
mediaClickCounter = 0;
refreshAds();
}
}
// you execute the function.
})();
闭合<3.
使用
这样的东西怎么样:
var ClickCounter = {
mediaClickCounter: 0,
refreshMediaAds:function() {
if (this.mediaClickCounter < 2) {
this.mediaClickCounter++;
} else {
this.mediaClickCounter = 0;
refreshAds();
}
}
};
然后你可以只使用 ClickCounter.refreshMediaAds()
这将递增成员变量。
这是可能的,你可以创建一些对象并将函数用作其方法。这样,变量将是对象的属性,而不是全局变量。
如果您目前不使用任何框架,使用 MooTools 可能会对您有很大帮助。创建和使用对象的一些示例位于此处:http://mootools.net/docs/core/Class/Class
您可以尝试返回您拥有的内容(以便以后可以根据需要使用它)
function refreshMediaAds(mediaClickCounter) {
if (mediaClickCounter < 2) {
mediaClickCounter++;
} else {
mediaClickCounter = 0;
refreshAds();
}
return mediaClickCounter;
}
//then do:
refreshMediaAds(clicks)
function refreshMediaAds() {
var mediaClickCounter = 0; // now variable have local scope.
if (mediaClickCounter < 2) {
mediaClickCounter++;
} else {
mediaClickCounter = 0;
refreshAds();
}
}
如果你真的必须,我相信这样的事情可以解决问题。 但是,IMO 您应该将其保留在全局命名空间中。
var refreshMediaAds = function() {
var mediaClickCounter = 0;
return function()
{
if (mediaClickCounter < 2) {
mediaClickCounter++;
} else {
mediaClickCounter = 0;
refreshAds();
}
}
}();
请注意,我还没有对此进行测试,这是对解决方案的有根据的猜测。
相关文章:
- Javascript用函数return替换局部变量
- 每次调用函数时,都要修改Javascript中的局部变量
- jQuery.ajax()访问javascript循环中的beforeEnd局部变量
- 定义 JavaScript 类的局部变量
- JavaScript:在调用之前将函数重新分配给局部变量,而不是直接调用并对'这'
- 为什么 Javascript 中的类变量在尝试多次调用它们或将它们分配给局部变量时会消失
- JavaScript和局部变量是不好的做法
- javascript中的全局和局部变量执行上下文
- 用于未初始化的局部变量的javascript变量范围
- 在 javascript 中使用方法的局部变量
- Javascript/JQUERY 局部变量
- JavaScript局部变量和全局变量混淆
- 如何在 JavaScript 中将局部变量转换为全局变量
- 全局访问的 JavaScript 函数局部变量
- JavaScript 中的全局变量到局部变量
- 为什么 javascript 会保留在外部函数中发生的局部变量重新分配,而不必捕获返回值
- Javascript 局部变量未更新
- 为什么我的 JavaScript 提升的局部变量返回未定义,但提升的全局变量返回空白
- 实例化后可从方法访问的 Javascript 局部变量
- 在其他函数中调用一个局部变量:Javascript