我在Google上搜索了类似的问题,但没有帮助。
// file export_object.js
function Welcome(nameIn) {
this.name = nameIn;
}
Welcome.prototype = {
this.name = null,
showName: function () {
console.log("Hi exported object from contructor function " + name);
},
updateName: function(nameIn) {
this.name = nameIn;
}
};
module.exports = Welcome;
问题就在线上
this.name = null,
// file server.js
var Welcome = require('export_object');
var w = new Welcome("Please update string");
w.updateName('Exported name:');
w.showName();
SyntaxError:意外令牌。
答案 0 :(得分:1)
已经在构造函数中分配了名称,因此在原型中明确定义空属性没有意义。只需删除该行:
function Welcome(nameIn) {
this.name = nameIn;
}
Welcome.prototype = {
showName: function () {
console.log("Hi exported object from contructor function " + name);
},
updateName: function(nameIn) {
this.name = nameIn;
}
};
module.exports = Welcome;
如果必须在原型上放置名称属性,则定义键值对的正确方法是用冒号将它们分开,例如
{
name: null,
哪种语法合适,但在大多数情况下仍然很奇怪。
答案 1 :(得分:0)
因为这里Welcome.prototype
是一个对象
因此,对象始终定义为{“ key”:“ value”},因此语法错误
function Welcome(nameIn) {
this.name = nameIn;
}
Welcome.prototype = {
resetName: function(){ this.name = null},
showName: function () {
console.log("Hi exported object from contructor function " + name);
},
updateName: function(nameIn) {
this.name = nameIn;
}
};
module.exports = Welcome;