87,993
社区成员
发帖
与我相关
我的任务
分享
[/quote]
因为他本来就是stringtypeof window[str] === 'function'
来判断
如果是在一个内部作用域里面,那没什么办法了。
也可以把对应的function放在某个命名空间下:
var nameSpace = {};
nameSpace.getnamebyid = function(){};
var str = 'getnamebyid';
if(typeof nameSpace[str] === 'function'){
nameSpace[str]()
}
这个跟最上面的原理是一样的,只是一个是你自己定义的命名空间,一个是全局的window对象。
typeof str == "function"
[/quote]
因为js的函数名就是变量名,只是变量中的值是一个函数。
如果有变量名与函数名一样,就会被认为是同一个变量。