[英]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.