通过查看self [name]来判断是否定义了Javascript函数 - 这是一个好方法吗?

but*_*oxa 4 javascript

这是本课题的后续问题.

我喜欢(并理解)那里的解决方案.但是,在我正在使用的代码中,使用另一种解决相同问题的方法:

function exist(sFN) {
    if(self[sFN]) return true;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

它似乎工作正常,虽然我不明白如何.它有用吗?怎么样?这种方法的缺点是什么?我应该从另一个问题切换到解决方案吗?

Nic*_*ver 7

试试这个:

function exist(sFN) {
 return (typeof sFN == 'function');
}
Run Code Online (Sandbox Code Playgroud)


小智 6

您的条件是检查"self"对象中是否存在"sFN"属性.任何非null,undefined,0和""都将评估为true.

正如其他人所说,你可以使用typeof或instanceof来查看它是否真的是一个函数.

查看您的链接示例,您应该阅读javascript中== /!=和=== /!==之间的区别.简答:(""== null)为真,(""=== null)为假.