考虑这段代码:
(function a() {
// Nested function
function b() {
console.log("Works!");
}
b();
})();
这段代码可以工作,但是(理论上)可以调用b()
如果名称位于字符串内(即动态)?
If b()
将在全局范围内声明,我们可以使用window[stringContainingName]();
。这种情况有可能吗?
这只是一个理论问题!我知道这样的代码是糟糕的设计。
这种情况有可能吗?
只有通过使b
函数对象的属性:
(function a(name) {
var fns = {
b: function b() {
console.log("Works!");
}
};
// possibly secure by `if (fns.hasOwnProperty(name))`
fns[name]();
})("b");
您需要事先知道函数的名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)