如何在javascript中从同一个对象获取属性值?

时间:2014-03-16 06:19:23

标签: javascript

如果我在javascript中有这个

var x = {
    "a" : function(q) { return q+1; },
    "b" : function(w) { return (this["a"])(1); } 
};

我想做一些事情,比如来自同一个对象但不同属性的访问函数。 例如,在上面的代码中,属性a应该没问题,但在属性b中,我想使用a中存储的函数。目前为了好玩我只有this["a"]这可能不起作用。但是我有办法获得这个功能吗?

由于

3 个答案:

答案 0 :(得分:4)

你实际上有什么用。在这里查看this fiddle与您的对象..

<强>的Javascript

var x = {
    "a" : function(q) { return q+1; },
    "b" : function(w) { return (this["a"])(1); } 
};

document.body.innerHTML = x.b();

调用x.b()的结果是2。

更复杂的对象可以这样做:

var myObj = {
    myFunction: function(testVar)
    {
        return this.Utilities.helperFunction(testVar);
    },
    Utilities: {
        helperFunction: function(anotherVar)
        {
            return anotherVar * 2;
        }
    }
}

您可能还注意到,在第二个示例中,我使用不同的语法来获取对象的属性。您可以使用this["a"]this.a,它们都返回相同的结果。您使用this["a"]的原因是您希望传递变量以获取属性或函数。

More information on the this keyword

答案 1 :(得分:0)

只需要将其打印到显示屏上:

var x = {
        "a" : function(q) {
            return q+1;
        },

        "b" : function(w) {
            return (this.a)(1);
        }
    };

    document.write(x.b(1));

答案 2 :(得分:0)

请看这个很棒的概述:How does the "this" keyword work?

它在链条上升了一层;在函数内部,this是功能上方的下一级范围,因此在x.b=function() {this //}的情况下,this看起来在范围上1级并且到达x