Javascript 窗口对象,从 namespace 数组构建函数调用

标签 javascript arrays function window-object

示例代码:(请勿使用 eval())

    var stringReference = "obj.inner.method";
    var namespace = stringReference.split(".");

    // Now I need to Call window[namespace].call();

我对如何构建函数调用有点困惑。最终结果应该是这样的?

    window[obj][inner][method].call();

上下文:

    <div data-attribute="click:obj.inner.method" > </div>

我正在获取数据属性并根据数据属性绑定(bind)事件监听器。 另外,提前致谢。

最佳答案

尝试这样的事情:

function getNamespace(base, path) {
    path = path.split('.');
    for (var i = 0; i < path.length; i++) {
        base = base[path[i]]
    }
    return base;
}

像这样使用它:

getNamepspace(window, 'obj.inner.method');

关于Javascript 窗口对象,从 namespace 数组构建函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19939877/

相关文章:

php - 跨类的 PDO 对象

javascript - 关于 JavaScript 基础的几个问题 - $, "is not a function"

javascript - 监听 Firefox 扩展中的所有传入流量

javascript - 无法将事件绑定(bind)到包含 jquery 对象的数组

c++ - 无法在 C++ 中访问数组的元素

python - 从全局环境中的函数内部使用 exec 定义函数

javascript - 当您稍后需要调用 ID 时,可以使用什么来代替 HTML 数据属性

javascript - 从具有特定参数的数组中检索对象

arrays - 如何将二维数组附加到命名范围的末尾?

reactjs - REACT Props 在 useEffect 中未定义