Javascript三种创建对象的方法,new关键字,for...in 遍历对象

在Javascript中,对象是一组无序的相关属性和方法的集合,例如:字符串、数值、数组、函数等。

对象是有属性和方法组成
属性:事物的特征
方法:事物的行为

字面量创建对象:{ } 里面包含了表达这个对象的属性和方法

// 利用对象字面量创建对象 {}
        var obj = {
            uname: '小明',
            age: 18,
            sayHi: function() {
                console.log('hi~');
            }
        };
        // (1) 里面的属性或者方法我们采用键值对的形式  键 属性名: 值  属性值
        // (2) 多个属性或者方法中间用逗号隔开的
        // (3)方法冒号后面跟的是一个匿名函数

        // 使用对象
        // (1)调用对象的属性  我们采用 对象名.属性名
        console.log(obj.uname);
        // (2)调用对象的属性还有一种方法,对象名['属性名']
        console.log(obj['age']);
        // (3)调用对象的方法 sayHi  对象名.方法名
        obj.sayHi();

new object创建对象:

// new Object创建对象
        var obj = new Object(); // 创建了一个空对象
        obj.uname = '小明';
        obj.age = 18;
        obj.sayHi = function() {
                console.log('hi~');
            }
            // (1) 我们是利用  等号 = 赋值的方法  添加对象的属性 和 方法
            // (2) 每个属性和方法之间  分号结束
        console.log(obj.uname);
        console.log(obj['sex']);
        obj.sayHi();

构造函数中封装的是对象,不是普通代码,把对象中相同的属性和方法抽象出来封装到函数中。

利用构造函数创建对象,前两种一次只能创建一个对象。

// 构造函数 语法格式
        // function 构造函数(){
        //    this.属性 = 值;
        //    this.方法 = function(){};
        // }
        // new 构造函数名();
        
        // 1、构造函数 Star 明星 泛指的某一大类
        function Star(uname, age, sex) {
            this.name = uname;
            this.age = age;
            this.sex = sex;
            this.sing = function(sang) {
                console.log(sang);
            }
        }
        // 2、对象 一个具体对象,刘德华=={name:'刘德华', age:18, sex:'男',sing:f}
        var ldh = new Star('刘德华', 18, '男'); // 调用是一个函数,返回的是一个对象
        var zxy = new Star('张学友', 19, '男');
        // 对象类型
        console.log(typeof ldh);
		// 利用构造函数创建对象的过程,也称为对象的实例化
		
        console.log(ldh.name);
        console.log(ldh['sex']);
        ldh.sing('冰雨');
        // 1、构造函数首字母需要大写
        // 2、构造函数不需要return,就可以返回结果。
        // 3、我们调用构造函数  必须使用 new
        // 4、我们只要 new Star() 调用函数就创建一个对象 ldh()

new关键字

  1. 在内存中创建一个新的空对象。
  2. 让this指向这个新的空对象。
  3. 执行构造函数里面的代码,给这个新对象添加属性和方法。
  4. 返回这个新对象。(所以构造函数中不需要return)。

  • new Array()创建一个数组对象
  • new object()创建一个对象实例
  • new Date()创建一个日期对象
    .。。。

遍历对象

	// 遍历对象        
        var obj = {
            name:'大头',
            age:18,
            fn:function(){}
        }
        // for(变量 in 对象){ }
        for(var k in obj){
            console.log(k);  // k 变量 输出得到的是  属性名
            console.log(obj[k]);  // obj[k]  得到的是  属性值  
        }

小结

  1. 对象可以让代码结构更清晰
  2. 对象属于复杂数据类型object
  3. 本质:对象就是一组无序的相关属性和方法的集合。
  4. 构造函数泛指某一大类,比如明星,刘德华,张学友都统称为明星
  5. 对象实例特指一个事物,比如这个刘德华
  6. for…in语句用于对对象的属性进行循环操作。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值