Object.prototype.hasOwnProperty.call()
之前判定是否含有该key的方法一直是 !!obj[key] 后面看到了更加规范的,记录下
JavaScript中Object对象原型上的hasOwnProperty() 用来判断一个属性是定义在对象本身而不是继承自原型链。

从console的test可以看出来,它可以判定该key是否存在于object中.但是既然这样可以实现,为什么还要使用Object.prototype.hasOwnProperty.call() 这么复杂的写法呢.

这个test可以看出来,明明a是object的属性,为什么返回是false呢? 因为javascript没有将hasOwnProperty作为一个敏感词,所以我们很有可能将对象的一个属性命名为hasOwnProperty,这样一来就无法再使用对象原型的 hasOwnProperty 方法来判断属性是否是来自原型链。

Object.prototype.hasOwnProperty.call(Object,key)
这样一来,就可以准确判断了.
Enhance
ES6也可以使用Refect.get 或者Refect.has

