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 回答