JavaScript创建对象的三种方式,以及对象遍历

本文介绍了JavaScript中创建对象的三种常见方法:字面量创建、new object创建以及利用构造函数创建。特别强调了构造函数在处理大量重复属性和方法时的优势,它是将对象的共性部分抽象为函数,用于生成对象。此外,还讨论了如何遍历对象属性。

1、利用字面量创建对象

<script>
        //1.利用对象字面量创建对象{}
        // var obj = {};  创建了一个空的对象
        var obj = {
            uname: '张三',
            age: 18,
            sex: '男',
            sayHi: function () {
                console.log('hi~')
            }
        }
        //(1) 里面的属性或者方法我们采取键值对的形式 属性名 : 值   (键是属性名)
        //(2) 多个属性或者方法中间用逗号隔开 最后一个可以不加
        //(3) 方法冒号后面跟的是一个匿名函数

        //2.使用对象
        //(1)调用对象的属性 我们采取 对象名.属性名    (这个点(.)我们理解为 的)
        console.log(obj.uname);
        //(2) 调用属性还有一种方法 对象名['属性名']
        console.log(obj['age']);
        //(3)调用对象的方法 sayHi 对象名.方法名()  千万别忘记添加小括号
        obj.sayHi();
    </script>

2、利用 new object 创建对象

<script>
        // 利用 new object 创建对象
        var obj = new Object(); //创建了一个空的对象  切记 这个Object 开头大写
        // 在里面添加内容
        obj.uname = '张三';
        obj.age = 18;
        obj.sex = '男';
        obj.sayhi = function () {
            console.log('hi~');
        }
        obj.sayno = function () {
            console.log('no~');
        }
        // (1)我们是利用 等号 = 赋值的方法 添加对象的属性和方法
        // (2)每个属性和方法之间用 分号结束 
        console.log(obj.uname);
        console.log(obj['sex']);
        obj.sayhi();
        obj.sayno();
    </script>

3、利用构造函数创建对象

前面两种方法,一次只能创建一个对象,里面很多的属性和方法很多是大量相同的,我们只能复制
因此,我们可以利用函数的方法,重复这些相同的代码,把这个函数称为构造函数
构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面
这个函数里面封装的不是普通的代码,而是对象

 构造函数的语法格式
          function 构造函数名() {
             this.属性 =;
             this.方法 = function () { }
         } 
// 利用构造函数创建对象
        // 我们需要创建四大天王的对象 相同的属性: 名字 年龄 性别 相同的方法: 唱歌
        // 构造函数的语法格式
        /*  function 构造函数名() {
             this.属性 = 值;
             this.方法 = function () { }
         } */
        //调用
        //new 构造函数名();
        function Star(uname, age, sex) {
            this.name = uname;
            this.age = age;
            this.sex = sex;
            this.sing = function (sang) {
                console.log(sang);
            }
        }
        var ldh = new Star('刘德华', 18, '男'); //调用函数返回的是一个对象
        //console.log(typeof ldh);
        console.log(ldh.name);
        console.log(ldh['sex']);
        ldh.sing('冰雨');
        var zxy = new Star('张学友', 19, '男');
        console.log(zxy.name);
        console.log(zxy.age);
        zxy.sing('李兰香');
        //1.构造函数名字首字母要大写
        //2.我们构造函数不需要return 就可以返回结果
        //3.我们调用构造函数 必须使用 new
        //4.我们只要new Star() 调用函数就创建了一个对象 ldh {}
        //5.我们的属性和方法前面必须添加 this

    </script>

遍历对象属性

<script>
        var obj = {
            name: '张三',
            age: 18,
            sex: '男'
        }
        // for in 遍历对象
        // for(变量 in 对象){

        // }
        for (var k in obj) {
            console.log(k);  //变量 k 输出 属性名
            console.log(obj[k]); //属性值
        }
        // 我们使用 for in 里面的变量 我们喜欢写 k 或者 key

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值