[英]how to define global variable in javascript
我想知道如何在javascript中定义全局变量。 这就是我正在做的,我希望currentValue是全局的,以便每次gotoNext和上一个函数都可以更改其值
onPageClick : function(event) {
var currentValue = event.target.innerHTML;
if (currentValue == "Next")
this.gotoNext();
if (currentValue == "previous")
this.gotoPrev();
},
gotoNext : function() {
this.currentValue +1;
},
gotoPrevious : function() {
this.currentValue -1;
},
但在goToNext和gotoPrevious中未定义currentValue!
您并不是真正在问一个全局变量,而是一个类级别的变量。
您需要设置this.currentValue = event.target.innerHTML;
您需要在任何函数范围之外定义currentValue。 像这样:
<script>
var currentValue = '';
/* YOUR SCRIPT GOES HERE */
</script>
但是,然后,您必须在最后两个函数上更改代码:
gotoNext : function() {
currentValue += 1;
},
gotoPrevious : function() {
currentValue -= 1;
}
但是要小心,全局变量是一件坏事。 IMO,定义对象的最佳方法如下:
var yourObject = function(){
var currentValue = '';
var that = {
onPageClick : function(event) {
var currentValue = event.target.innerHTML;
if (currentValue == "Next")
that.gotoNext();
if (currentValue == "previous")
that.gotoPrevious();
},
gotoNext : function() {
currentValue += 1;
},
gotoPrevious : function() {
currentValue -= 1;
}
};
return that;
};
然后,您可以像这样使用它:
var obj = yourObject();
obj.gotoNext();
obj.gotoPrevious();
我建议您了解范围和闭包:
http://robertnyman.com/2008/10/09/explaining-javascript-scope-and-closures/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.