如果学过类似C#这样的语言,然后定义两个类class Mu{}和class Ku{},那么显然typeof Mu != typeof Ku的,但是在js里则不是这样,对于Mu和Ku的对象进行typeof后它们输出都是object,而对typeof Mu这个类名则输出function,即类名其实是一个函数类型,所以可以这样调用Mu(),也可以new Mu(),这个和es5倒是一致的;
如果直接输出Mu则得到function Mu()这样一个字符串;
综上,js的typeof不能很好的支持判断自定义类型(js里类型就只有固定的几种,String,Object,Symbol。。。);
而instanceof则比较符合人的直觉,它能判断出对象是否是某个自定义类型的实例;
如,虽然typeof mu === typeof ku,但是mu instanceof Ku则是返回false;