遍历、枚举对象

遍历、枚举对象

        let obj = {
            a: 123456,
            b: 456123,
            c: 789123,
            d: 8523,
            __proto__: {
                name: "123456"
            }
        };
        // 当前遍历会把原型上的属性也给打印出来(__proto__为原型)
        for (let key in obj) {
            console.log(obj[key]);
            // 123456
            // 456123
            // 789123
            // 8523
            // '123456'
        }

hasOwnProperty方法的使用

        let obj = {
            a: 123456,
            b: 456123,
            c: 789123,
            d: 8523,
            __proto__: {
                name: "123456"
            }
        };
        for (let key in obj) {
            // 判断是否为对象自定义属性,不包含(__proto__原型属性)
            if(obj.hasOwnProperty(key)) {
                console.log(obj[key]);
                // 123456
                // 456123
                // 789123
                // 8523
            }
        }

instanceof的使用

        // 为true的例子
        function Car() {}
        let car = new Car();
        // 判断car是否是Car构造函数构造出来的
        console.log(car instanceof Car); // true
        // 为true的例子
        let obj = {}; // 或者obj = []
        // 判断obj 的原型链上有没有Object的原型
        console.log(obj instanceof Object); // true
        // 为false的例子
        function Car() {}
        let car = new Car();
        let obj = {};
        // 判断obj是否是Car构造函数构造出来的
        console.log(obj instanceof Car); // false

A instanceof B
综上示例得出该结论:看A对象的原型链上 有没有 B的原型

你可能感兴趣的:(遍历、枚举对象)