1

3 つのフィールドを持つ単純な JavaScript オブジェクトを作成しようとしています。

  1. 名前
  2. FName
  3. フルネーム

私がしたことはこれです

var xyz = {
          name: 'ahsan',
          fname: 'ashfaq',
          fullname : xyz.name + xyz.fname

      };

しかし、それは機能していません。

4

2 に答える 2

1

フルネームをフィールドにするのではなく、メソッドとして宣言します -

var xyz = {
    name: 'ahsan',
    fname: 'ashfaq',

    // Declare a method to return the full name
    fullname : function () {
        return this.name + this.fname;
    }
};

その後 -

xyz.fullname();

フルネームで教えてくれます。

ライブデモ

オブジェクトを定義する同じブロック内のオブジェクトのプロパティにアクセスすることはできません。あなたの例では、JavaScript は という名前の定義済みオブジェクトを探しますxyz。この時点ではオブジェクトを使用できないため、取得できるのは のみですundefined

メソッドからプロパティにアクセスすると、シナリオが変わります。ここで、 を使用thisして現在のオブジェクトを参照できますxyz。したがって、このメソッドを呼び出すと、thisは を参照しxyz、その時点でそのプロパティが定義されます。

于 2013-08-19T10:47:44.317 に答える