12

重複の可能性:
オブジェクトリテラル宣言での自己参照

この例のように、JSにはいくつかの単純なオブジェクトがあります。

var object = {
 firstname : 'john',
 lastname : 'paul',
 wholename : firstname + lastname
}

この単純なことはうまくいきません。johnとpaulは名前全体で定義されていないため、関数を実行した場合にのみ機能する「this」演算子を使用しようとしました(getWholeName(){return this.firstname+this.lastname} )。しかし、関数ではなく変数を使用したい場合、どうすればよいですか?私も試しobject.firstname + object.lastnameましたが、うまくいきません。

4

2 に答える 2

3

Javascript では、すべての関数がオブジェクトです。次のように、オブジェクトのコンストラクターを関数として宣言する必要があります。

function person(firstname,lastname)
{
this.firstname=firstname;
this.lastname=lastname;

this.wholeName=wholeName;

 //this will work but is not recommended.
 function wholeName()
 {
 return this.firstname+this.lastname;
 }
}

プロトタイプを作成することで、オブジェクトにメソッドを追加することもできます。これは、推奨される方法です。詳細はこちら:

http://www.javascriptkit.com/javatutors/proto.shtml

于 2012-12-25T22:45:52.583 に答える