我强烈怀疑运行下面列出的代码片段时出现的错误是因为 JavaScript 不允许在构造函数内部声明属性,但我不能确定。
var Person = function(firstName, lastName)
{
getName: function() {
return this.firstName + ' ' + this.lastName;
}
};
var person = new Person('Joe', 'Bloggs');
alert('Hello, ' + person.getName() + "!");
/*
Exception: SyntaxError: function statement requires a name
@Scratchpad/2:4
*/
您能确认我的怀疑是否正确吗?如果是,那么添加属性的方法是:
要使用对象字面量语法吗?
var Person = function(firstName, lastName) { this.firstName = firstName; this.lastName = lastName; }; var person = { // object literal getName: function() { return this.firstName + " " + this.lastName; } };
或者,将属性添加到构造函数的原型(prototype)中?
var Person = function(firstName, ..) { ... } Person.prototype.getName = ...;
最佳答案
我认为 JavaScript
处理这一行:
getName: function() {
return this.firstName + ' ' + this.lastName;
}
如labeled function declarations 。你想要的可能是这样的:
this.getName = function() {
return this.firstName + ' ' + this.lastName;
}
关于javascript - 在构造函数内声明属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40277418/