1

var 名前空間内で変数を宣言しようとして問題が発生しました..
jsFiddle .. http://jsfiddle.net/bobbyrne01/jeh7Y/

Error: SyntaxError: missing : after property id
Line: 23, Column: 8 Source Code: var startTime = null;

var Utils = {

    var startTime = null;

    getStartTime: function(){

        return startTime;
    },

    setStartTime: function(startTimeTemp){
        startTime = startTimeTemp;
    },
}

Utils.setStartTime(new Date());
alert(Utils.getStartTime());
4

2 に答える 2

4

オブジェクトリテラルで変数を宣言しようとしています。それは許されません。

代わりに、次のイディオムを使用します。

var Utils = function(startTime) {
    this.getStartTime = function(){
        return startTime;
    };

    this.setStartTime = function(startTimeTemp){
        startTime = startTimeTemp;
    };
}
u = new Utils(new Date());
alert(u.getStartTime());

JavaScript が最初の言語でない場合、startTime が Utils のインスタンスに「とどまる」ことを理解するのは難しいかもしれません。これは、javascript にクロージャがあるためです。これは一読の価値があるかもしれません。

于 2012-12-31T00:33:42.100 に答える
2

startTime示されているように、オブジェクト プロパティとして宣言する必要があります。次にthis、プロパティを参照するために使用します。

var Utils = {

    startTime: 'test',

    getStartTime: function() {    
        return this.startTime;
    },

    setStartTime: function(startTimeTemp) {
        this.startTime = startTimeTemp;
    },
}

alert(Utils.getStartTime());    
Utils.setStartTime(new Date());
alert(Utils.getStartTime());​
于 2012-12-31T00:35:50.113 に答える