调用变量中指定的对象的Javascript成员函数

调用变量中指定的对象的Javascript成员函数

本文介绍了调用变量中指定的对象的Javascript成员函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下所谓的 Revealing Module Pattern ,我想使用变量调用 a 函数 b 。我怎么能这样做?

I have the following so-called Revealing Module Pattern and I want to call the function a inside function b using a variable. How can I do that?

foo = function() {
    a = function() {
    };

    b = function() {
        memberName = 'a';
        // Call a() using value stored in variable `memberName`.
    }

    return {b: b};
}();


推荐答案

问题在于 a 不是成员,而是变量(它应该是本地变量!)。除非你使用黑暗魔法( eval ),否则你无法通过名称动态访问它们。

The problem is that a is not a member, but a variable (and it should be a local one!). You cannot access those dynamically by name unless you use dark magic (eval).

你需要制作它一个对象的成员,以便您可以用括号表示法访问它:

You will need to make it a member of an object, so that you can access it by bracket notation:

var foo = (function() {
    var members = {
        a: function() { }
    };

    function b() {
        var memberName = 'a';
        members[memberName].call();
    }

    return {b: b};
}());

这篇关于调用变量中指定的对象的Javascript成员函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-03 13:11