2015-10-14 158 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