2012-12-31 60 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());​