2016-03-24 9 views
2

"text"プロパティの値を "value"プロパティに設定したいとします。オブジェクトからのJavaScriptアクセスプロパティ

Example.html:

<script> 
    var obj = { 
     text: "Hello", 
     value: this.text 
     /* 
     value: function() { 
      return this.text; 
     } 
     */ 
    }; 

    console.log(obj.text); // Output: Hello 
    console.log(obj.value); // Output: undefined 

    // console.log(obj.value()); // Output: Hello 
</script> 

なぜ?

+0

理由あなたはこれを達成したいですか? – messerbill

答えて

0

bcoz thisはコード内のグローバルオブジェクトを指します。 thisは、(現在の実行コンテキスト)

var obj = { 
     text: "Hello", 
     value: this 
    }; 

    console.log(obj.text); // Hello 
    console.log(obj.value); // window 

可能な内部関数は、それ以外の場合はグローバルオブジェクトを参照しますですが、この場合値で今

var obj = { 
     text: "Hello", 
     value: function() { 
      return this.text; 
     } 
    }; 

    console.log(obj.text); // Hello 
    console.log(obj.value()); //Hello 

this()で、あなたのオブジェクトを参照する

+0

これはまだ定義されていないと思います – messerbill

+0

2番目の部分で 'this'は' obj'を参照しますhttps://jsfiddle.net/cLd7eft4/1/ – Ramanlfc

+0

あなたの権利は、しかし、彼は 'value' 'text'と等しい文字列にするか、またはその値を返すfuntionである場合 – messerbill

0

javascriptのthisキーワードは、現在のアクションを呼び出したコンテキストを意味します。なぜあなたはこれをしたいん: - :ので、あなたの問題を達成したい場合は、以下のんはまだなく、あなたのケースで

var obj = { 
    text: "Hello" 
    }; 

    obj.value = obj.text; 

https://jsfiddle.net/2zzdnmeb/

thiswindow対象でしょうか?あなたはすでにあなたの価値を持っています

関連する問題