hasOwnProperty:
官方解释:如果 object 具有带指定名称的属性,则 hasOwnProperty 方法返回 true,否则返回 false。此方法不会检查对象原型链中的属性;该属性必须是对象本身的一个成员。
一开始没理解看了官方的例子如下:
var s = new String("Sample");
console.log(s.hasOwnProperty("split"));//false
console.log(String.prototype.hasOwnProperty("split"));// true
咋一看 ,不对呀,不是应该是 都是true吗?于是乎 我就打印了 s 和String
打印出来的 s 对象本身的成员中并没有 split 属性 ,split 属性 在他的原型链中,但是 hasOwnProperty 并不会检查原型链,所以返回 false;
再来看看 String 的打印结果:
所以我们可以知道;hasOwnProperty 检查的就是 object 自身的对象,换句话说就是 用console.log 打印出来的对象中是否包含 某个属性