2015-10-14 89 views
1

背景:用戶在app.js中輸入有關航班的詳細信息,然後將其輸出到控制檯中。 index.js僅包含一個模塊,其中包含一個對象原型。nodeJS syntaxError:意外令牌

問題:當我運行命令 「節點app.js」,我得到以下錯誤:

/Users/ 
UserName/Desktop/NodeTrainingWork/04/objectcreat/flight/index.js:3 
var this.data = { 
    ^^^^ 
SyntaxError: Unexpected token this 
at exports.runInThisContext (vm.js:53:16) 
at Module._compile (module.js:413:25) 
at Object.Module._extensions..js (module.js:452:10) 
at Module.load (module.js:355:32) 
at Function.Module._load (module.js:310:12) 
at Module.require (module.js:365:17) 
at require (module.js:384:17) 
at Object.<anonymous> (/Users/UserName/Desktop/NodeTrainingWork/04/objectcreat/app.js:1:76) 
at Module._compile (module.js:434:26) 
at Object.Module._extensions..js (module.js:452:10) 

這是index.js代碼:

var Flight = function() { 

var this.data = { 
    number: null, 
    origin: null, 
    destination: null, 
    arrivalTime: null 
}; 

this.fill = function(info) { 
    for (var prop in this.data) { 
     if (this.data[prop] != 'undefined') { 
      this.data[prop] = info[prop]; 
     } 
    } 
}; 

this.triggerArrival: function() { 
    this.data.arrivalTime = Date.now(); 
    } 

this.getInformation: function() { 
    return this.data; 
    } 
};  


module.exports = function(info) { 
    var instance = new Flight(); 
    instance.fill(info); 
    return instance; 

}; 

這是代碼爲app.js文件:

 var flight = require('./flight'); 


var pdxlax = { 
    number: 847, 
    origin: 'PDX', 
    destination: 'LAX' 
}; 

var pl = flight(pdxlax); 
pl.triggerArrival(); 

console.log(pl.getInformation()); 


var pk340 = { 
    number: 340, 
    origin: 'ISL', 
    destination: 'DXB' 
}; 

var pk = flight(pk340); 
pk.triggerArrival(); 

console.log(pk.getInformation()); 

我不知道我要去哪裏錯。從我所學到的,我創建一個對象原型的方式是正確的。

+0

由於錯誤說你有'var this.data = {'。在這裏使用var是一個錯誤,請刪除它 –

回答

4

var用於創建新變量,而不是在對象上創建屬性。

從錯誤的行刪除var