• js对象枚举


    js对象枚举

    使用for in关键字,对象属性名挨次。

    访问属性对象点,内部转换括号间。

    属性仅在对象中,含有自己属性通。

    属性是否原型链,判断in字后边见。

    判断包含有原型,实例左右构造停。

    使用for in关键字,对象属性名挨次。

    遍历对象使用 for 和 in 这两个关键字

    for(var pro in obj){}

    再循环的时候 对象的属性名字 会挨个 赋值到 pro 这个变量上 当然这个属性可以随便屈名字

    访问属性对象点,内部转换括号间。

    我们在编程的时候访问属性常用方式 obj.property 这样的操作内部实际上是转换成 obj[property]

    <script>

        var obj = {

            name: "老铁",

            age: 20,

            show: function() {

                console.log("handsome");

            }

        }

        for (var pro in obj) {

            console.log(pro + " == " + obj[pro]);

            /*

            name == 老铁

            js.html:21 age == 20

            js.html:21 show == function() {

                console.log("handsome");

            }

            */

        }

    属性仅在对象中,含有自己属性通。

    遍历的时候有时候我们只是需要当前对象中的属性 而不是继承链上的

    这个时候系统给我们提供了一个方法 ob.hasOwnProperty(属性名) 判断这个属性是当前对象而并非继承链

      <script>

        function Person() {

            this.name = "小城贝尔";

            this.age = "23";

            this.tall = 180;

        }

        Person.prototype.handsome = 99;

        Person.prototype.school = "西安体育学院";

        Person.prototype.tall = 175;

        var person = new Person();

        for (var pro in person) {

            console.log(pro + "===> " + person[pro]);

            /*

                name===> 小城贝尔

                age===> 23

                tall===> 180

                handsome===> 99

                school===> 西安体育学院

            */

        }

        //上边我们可以看到 这样会将原型链上的属性一并遍历出来 如果我们不想获得原型上的属性

        // 就可以使用 obj.hasOwnProperty("属性名");判断是否是只属于 对象本身

        for (var pro in person) {

            if (person.hasOwnProperty(pro)) {

                console.log(pro + "==\=> " + person[pro]);

                /*

                    name===> 小城贝尔

                    age===> 23

                    tall===> 180

                */

            }

        }

    </script>

    属性是否原型链,判断in字后边见。

    如果你只是想判断这个属性值 是属于这个对象原型链 那么 可以使用 in

    属性名 in 对象 (属性名必须加引号不然会报错)

    <script>

        function Person() {

            this.name = "小城贝尔";

            this.age = "23";

            this.tall = 180;

        }

        Person.prototype.handsome = 99;

        Person.prototype.school = "西安体育学院";

        Person.prototype.tall = 175;

        var person = new Person();

        var inres = "tall" in person; //true

        var inres1 = "age" in person; //true

        var inres2 = "school" in person; //true

        console.log(inres);

        console.log(inres1);

        console.log(inres2);

    </script>

    property in 构造函数

    判断包含有原型,实例左右构造停。

    判断一个对象是不是通过某个构造函数构建出来的

    A(对象) instance B (构造函数)

    实际上是 判断的是 A 的原型链是否包含 B 的原型链

    因为当你测试的时候 判断是否是它超类构造出来的结果也是true

     <script>

        function Person() {

            this.name = "小城贝尔";

            this.age = "23";

            this.tall = 180;

        }

        Person.prototype.handsome = 99;

        Person.prototype.school = "西安体育学院";

        Person.prototype.tall = 175;

        var person = new Person();

        var ins = person instanceof Person; //true

        var ins1 = person instanceof Object; //true

        console.log(ins);

        console.log(ins1);

    </script>

  • 相关阅读:
    Python之路,Day2
    Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析
    bind+dlz+mysql实现区域记录动态更新
    SUSE下FTP服务器搭建
    最简单粗暴的http文件列表
    shell脚本监控MySQL服务是否正常
    解决问题:Jupyter Notebook启动不会自动打开浏览器,每次都要自己打开浏览器输入网址
    让Jupyter Notebook个性化
    数据预处理小结
    多模型融合推荐算法
  • 原文地址:https://www.cnblogs.com/weixin2623670713/p/13599108.html
Copyright © 2020-2023  润新知