对象的枚举enumeration

for in循环(简化版for循环),目的是便利对象,通过对象属性的个数来控制循环圈数,也可用来循环数组

var obj = {
  name: 'yuan',
  age: 13,
  sex: 'male',
  __prop__:{
    lastname:"yuan",
    __proto__:Object.prototype,
  }
}

for(var prop in obj){

  console.log(obj[prop]);

//  console.log(obj.prop);这种方式等同于obj['prop'],是在访问obj里的prop这个属性,不会把prop当成一个变量来使用,会报undefined

}
 
hasOwnProperty是一个方法,来判断这个对象是你自己的还是原型的    obj.hasOwnProperty(prop),如果不是自己的属性,是原型上的属性,就不会返回。
 
 
A instanceof B的意思是A对象是不是B构造函数构造出来的;记住是:看A对象的原型链上有没有B的原型
 
区别传的变量是数组还是对象的方法:
一是constructor,二是instanceof,
三是Object.prototype.toString().call([])   --->  [object Array]
  Object.prototype.toString().call({})   --->  [object Object]
原文地址:https://www.cnblogs.com/Rooney10/p/13024173.html