在我的情况下:
callback instanceof Function
要么
typeof callback == "function"
没关系,有什么区别?
instanceof
var ClassFirst = function () {}; var ClassSecond = function () {}; var instance = new ClassFirst(); typeof instance; // object typeof instance == 'ClassFirst'; // false instance instanceof Object; // true instance instanceof ClassFirst; // true instance instanceof ClassSecond; // false
typeof
'example string' instanceof String; // false typeof 'example string' == 'string'; // true 'example string' instanceof Object; // false typeof 'example string' == 'object'; // false true instanceof Boolean; // false typeof true == 'boolean'; // true 99.99 instanceof Number; // false typeof 99.99 == 'number'; // true function() {} instanceof Function; // true typeof function() {} == 'function'; // true
/regularexpression/ instanceof RegExp; // true typeof /regularexpression/; // object [] instanceof Array; // true typeof []; //object {} instanceof Object; // true typeof {}; // object
最后一个有点棘手:
typeof null; // object