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]