Array.prototype.method=function(){
console.log(this.length);
}
var myArray=[1,2,3]
myArray.name="数组";
for (var key in myArray) {
console.log(key);
}
// 0 1 2 name method
// for in 循环便利所有的可枚举属性,和原型链上的可枚举属性。适合便利对象,不适合便利数组
Object.prototype.method=function(){
console.log(this);
}
var myObject={
a:1,
b:2,
c:3
}
for (var key in myObject) {
console.log(key);
}
// 输出 a,b,c method
// 区别 for in 的 Object.keys(obj)取的是 实例上的可枚举属性。
var arr = [11,22,33]
arr.name = 'yyk'
for(var value of arr){
console.log(value)
}
// 输出 11 22 33
// 适用遍历Number、Array、String、map、set等拥有迭代器对象的集合.
// 但是不能遍历对象,因为没有迭代器对象.与forEach()不同的是
//它可以正确响应break、continue和return语句