for-in枚举对象属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>for-in 枚举</title>
</head>
<body>
    <script>
        function Person(){
            this.name="person";
            this.age=10;
            this.sex="male";
        }
        Person.prototype.say=function(){
            alert("Hello,world!");
        }
        var person1=new Person();
            person1.name="peter";
            person1.age=20;
            person1.sex="female";
            person1.family=20;
        for(var key in person1){
            if(!!person1.hasOwnProperty(key)){console.log(key+":"+person1[key]);}    //此时用person1.key是无法取到值的,因为可以是字符串,不能应用.操作符        
        }
    </script>
</body>
</html>

for-in枚举对象属性注意:

1、输出属性的顺序不一定,根据浏览器而异;

2、不能用person1.key的方式取到属性值,应该用person1[key]的方式取得属性值。

3、如果要表示迭代的对象为null或者undefined,for-in语句会抛出错误,但是ECMAScript更正了这一行为,对于这种情况,不抛错,而是不执行循环体。

放下过去,才能迎接未来! 未来的每一天我都要过的精彩!
原文地址:https://www.cnblogs.com/lilylearning1992/p/4720418.html