簡體   English   中英

如何在javascript中定義全局變量

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM