我用这个:
function (foo){
foo = foo || function () { };
foo();
//do some thing
}
但可以使用更传统的:
function (foo){
if(typeof foo === 'function'){
foo();
}
//do some thing
}
**根据vivek_nk的评论修改。
我认为第一个例子更好阅读但是当它在各种javascript编译器中编译时哪一个更有效?
答案 0 :(得分:2)
两者都不同。
因为第一个检查foo是null
还是undefined
或false
或0
或""
还是NaN
第二个仅检查undefined
。
就我个人而言,我觉得你应该使用第一个,因为它会检查各种各样的东西,并分配一行代码并且更具可读性。
答案 1 :(得分:1)
这两种方式都是错误的。在做'某事'之前,我看到你想要调用另一个函数。 因此,检查它是否有功能,而不仅仅是它未定义。
function (foo){
//we check of type function
//because if string is passed ur condition wont work
if(typeof foo == "function"){
foo();
}
//do some thing
}