Javascript从对象访问属性

时间:2016-03-24 16:29:39

标签: javascript object properties

我想设置" text"的值财产到"价值"属性。

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>

为什么?

2 个答案:

答案 0 :(得分:0)

javascript中的this关键字表示调用当前操作的上下文。因此,如果您想实现您的问题,请执行以下操作:

  var obj = {
    text: "Hello"
  };

  obj.value = obj.text;

https://jsfiddle.net/2zzdnmeb/

在您的情况下this将是window对象 - 但仍然:您为什么要这样做?你已经拥有了自己的价值

答案 1 :(得分: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 in value()引用你的对象