以下のコードスニペットを実行してエラーが発生することは、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; } };
または、コンストラクタ関数のプロトタイプにプロパティを追加するには? labeled function declarationsとして
getName: function() { return this.firstName + ' ' + this.lastName; }
:
var Person = function(firstName, ..) { ... } Person.prototype.getName = ...;
'getName'をプロパティに置き換えて' getName:function(){ ''と 'this.getName = function(){ ' – gurvinder372
とにかくプロトタイプに載せてください。 – RobG