繁体   English   中英

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

[英]How to get property values from same object in javascript?

如果我在javascript中有这个

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

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

谢谢

你有什么工作。 看看这个小提琴在这里与你的对象..

使用Javascript

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

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

调用xb()的结果是2。

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

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

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

有关this关键字的更多信息

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

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

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

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

看到这个非常棒的概述: “this”关键字如何工作?

它在链条上升一级; 在函数内部, this是函数上面的下一级别的范围,因此在xb=function() {this //}this看起来在范围上1级并且到达x

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM