从JavaScript对象访问变量

时间:2013-09-16 12:30:27

标签: javascript php mysql

我有以下脚本

<script>

var Obj = {
        purpose_1: {
            defaults: { 
                purpose:{ my_variable:"Test" } 
            },
            activity: function() {
                console.log( Obj.purpose_1.defaults.purpose.my_variable );
            }
        },

        purpose_2: {

        }
   }

   Obj.purpose_1.activity();

</script>

我正在访问my_variable并从控制台

获取输出Test
console.log( Obj.purpose_1.defaults.purpose.my_variable );

有没有像

那样的捷径

this.my_variable

访问my_variable而非此长路径

Obj.purpose_1.defaults.purpose.my_variable

感谢。

2 个答案:

答案 0 :(得分:3)

activity: function () {
    return function() {
        //this now refers to Obj.purpose_1.defaults.purpose
        console.log(this.my_variable);
    }.call(Obj.purpose_1.defaults.purpose);
    // call overrides the context in which the function is executed
}

返回绑定到您需要的上下文的函数!这是sample fiddle

请参阅MDN上的Function.prototype.call方法。

答案 1 :(得分:2)

由于javascript对象通过引用隐式传递,您可以像这样为自己创建快捷方式:

activity: function() {
    var p = this.defaults.purpose; // shortcut

    console.log(p.my_variable); // property
}
相关问题