2012-12-31 61 views
1

有麻烦试图将一个变种命名空间内声明一个变量..
的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

您试图声明一个变量在对象文字中。这是不允许的。

而是使用这个成语:

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

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

如果JavaScript是不是你的第一语言可能很难理解开始时间“撑”与utils的实例。这是因为JavaScript已关闭。 This可能值得一读。

+0

+1对于链接 –

+0

使用JS了几个月,谢谢! – bobbyrne01

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());​