js中对象的理解与使用方法

一.对象的理解

一个对象可以是一个单独的拥有属性和类型的实体,一个 javascript 对象有很多属性,属性可以是它的功能和它本身的特性,添加对象属性用对象名+.=来进行添加。

举例:

一个盒子对象,本身特征属性为黑色,正方体;功能属性为装手纸的盒子。

二.常见创建对象的方式

1.通过new Object()或{}创建对象

let obj=new Object()
        obj.name="小龙"
        obj.age=20
//也可以用下面这种方式
let obj={}
        obj.name="小龙"
        obj.age=20
//等价于
let obj={name:"小龙",age:20}

2.通过工厂模式创建对象

Object方法或者字面量(var obj={})可以创建单个对象,但缺点太过于明显,代码过于冗余,会产生大量重复代码,由此引入工厂模式,即使用函数创造对象。

  function create(name, age) {
            let obj = new Object()
            obj.name = name
            obj.age = age
            return obj
        }
        let p1=create("小刘",20)
        let p2=create("小张",18)
        console.log(p1,p2)

3.通过构造函数创建对象

通过new来构造函数,约定俗成的惯例,构造函数命名开头首字母大写,与工厂模式不同,构造函数使用了this指向,因此,他知道从哪里来,从哪里产生的,可以将他的实例标识为一种特定的类型。

 function Person(name, age, sex) {
            this.name = name
            this.age = age
            this.sex = sex
        }
        let p1=new Person("小王",18)
        let p2=new Person("小赵",19)
        console.log(p1,p2)

#普通函数与构造函数的区别

(1)调用方式不同,构造函数需要用到new来调用,而普通函数不需要

(2)构造函数没有return返回值,它返回的是构造它的实例化对象(即this指向)

三.对象的遍历

对象是不能使用传统的for循环进行遍历的,但是可以使用fon in进行遍历

1.for in遍历

 let person={
            name:"小明",
            age:10
        }

        for (const key in person) {
            // 拿到所有的key
           console.log(key) 
        } for (const key in person) {
            // 拿到所有的key的值
           console.log(person[key])
        }

运行结果

 2.对象keys 遍历

该方法是Object提供的一个keys方法,keys方法可以将该对象的所有key存到一个数组中 

let person = {
            name: "小明",
            age: 10
        }
let keys = Object.keys(person)
        console.log(keys)

运行结果 

 将对象中的key和属性全部输出

 let person = {
            name: "小明",
            age: 10
        }
 let keys = Object.keys(person)
        keys.forEach(item => {
            console.log(item + " : " + person[item])
        })

运行结果

 

3.对象values遍历

如果只想获取对象中的属性值,还有一种方法


 let person = {
        name: "小明",
        age: 10
        }
 let value = Object.values(person)
        value.forEach(value => {
            console.log(value)
        })

运行结果

 到此,本篇结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值