示例代码:(请勿使用 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/