关于hasOwnProperty的坑:
这玩意不受js的属性保护,所以说,如果直接修改对象的方法,如obj.hasOwnProperty = null;它就会失效;
当然正常使用一般不会有人这么搞事情。
解决方法是:
用原型链的方法去调用:Object.hasOwnProperty.call(obj, "key")
关于instanceof的坑:
instanceof的左侧必须是对象,带来的问题是,如果基础数据类型,比如var n1 = 1,那么n1 instanceof Number会返回个false;但是var n2 = new Number(1),会返回true,虽然值都是1
所谓语言的特性,也许就是语言的Bug,语言的Bug,区别于别的语言那也可以叫特性