美文网首页
遍历、枚举对象

遍历、枚举对象

作者: 此人已失联好几天 | 来源:发表于2020-04-17 16:10 被阅读0次

    遍历、枚举对象

            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的原型

    相关文章

      网友评论

          本文标题:遍历、枚举对象

          本文链接:https://www.haomeiwen.com/subject/ljxhvhtx.html