javascript创建对象和遍历对象的几种方式

news/2024/7/11 0:01:06 标签: javascript, 前端, es6

1,创建对象

         一,对象字面量

        对象字面量是在 JavaScript 中使用大括号 {} 创建对象的最简单、最快的方法。

javascript">    let person={
        name:"张三",
        age:18,
        height:180
    }
    console.log(person)

        二,New Object()语法

        使用 new Object() 语法创建对象是 JavaScript 编程中最明确的对象创建方式之一。

javascript">    let person = new Object()
    person.name="王五"
    person.age=20
    person.height=180
    console.log(person)

        三,构造函数

        构造函数用于创建相似对象的多个实例。当需要多个具有相似属性和方法的对象时,构造函数比较合适。比较适合创建共享的公共结构但有不同值的实例对象

javascript">    function Person(name,age,height) {
        this.name=name
        this.age=age
        this.height=height
    }
    let Obj1=new Person("赵六",22,180)
    console.log(Obj1)
    let Obj2=new Person("小赵",32,190)
    console.log(Obj2)

        四,Object.create()方法

        JavaScript 中的 Object.create() 创建一个具有指定原型和属性的新对象。一般用于直接从另一个对象继承而不调用父级构造函数对象时,可以用这个方法。

javascript">    let person={
        name:"张三",
        age:30,
        introduce:function(){
            console.log("我的名字是"+this.name+"我的年纪是"+this.age)
        }
    }
    let result=Object.create(person)
    result.name="小田"
    result.age=40
    result.introduce()//我的名字是小田我的年纪是40

        五,ES6类语法

        ES6 类提供了一种更传统的、基于类的方法来在 JavaScript 中创建对象。

        

javascript">    class Person{
        constructor(name,age,height) {
            this.name=name
            this.age=age
            this.height=height
        }
        introduce(){
            return `我的名是叫${this.name},我的年纪是${this.age}岁,我的身高是${this.height}米`
        }
    }
    let result = new Person("小王",50,182)
    console.log(result.introduce())//我的名是叫小王,我的年纪是50岁,我的身高是182米

2,遍历对象

        一,for...in

        for...in可以遍历对象的所有可枚举属性,包括对象本身的和对象继承来的属性。

javascript">    let obj={
        name:"张三",
        age:18,
        height:180
    }
    for(let key in obj){
        console.log(key,obj[key])
    }

     二,Object.keys()

     Object.keys()方法可以遍历到所有对象本身的可枚举属性,但是其返回值为数组。

javascript">    let obj={
        name:"张三",
        age:18,
        height:180
    }
    let keys = Object.keys(obj)
    console.log(keys)// ['name', 'age', 'height']

   三,Object.values()

   返回的结构是以遍历的属性值构成的数组。

javascript">    let obj={
        name:"张三",
        age:18,
        height:180
    }
    let keys = Object.values(obj)
    console.log(keys)//['张三', 18, 180]

   四,Object.entries() 

   返回值为Object.values()与Object.keys()的结合,它会返回一个嵌套数组,数组内包括了属性名与属性值。

javascript">    let obj={
        name:"张三",
        age:18,
        height:180
    }
    let keys = Object.entries(obj)
    console.log(keys)
    /*[
        ['name','张三'],
        ['age',18],
        ['height',180]
    ]
    */

   五,Object.getOwnPropertyNames() (不常用)

    此方法接收一个对象为参数,返回该对象所有可枚举和不可枚举属性的属性名(不含Symbol属性)组成的数组。

javascript">    let obj={
        name:"张三",
        age:18,
        height:180,
        fun(){
            console.log(this.name)
        }
    }
    let keys = Object.getOwnPropertyNames(obj)
    console.log(keys)['name', 'age', 'height', 'fun']

简单总结了一下javascript中创建对象和遍历对象的几中方法,在这里做一个记录。


http://www.niftyadmin.cn/n/5317876.html

相关文章

vue实现-年、月、日、时、分、秒、星期?

一、文章引导 #mermaid-svg-nP4oT3Y4d6oaxUsg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-nP4oT3Y4d6oaxUsg .error-icon{fill:#552222;}#mermaid-svg-nP4oT3Y4d6oaxUsg .error-text{fill:#552222;stroke:#55222…

科研学习|论文解读——信息世界映射方法

题目:信息世界映射的下一步是什么?在情境中理解信息行为/实践的国际化和多学科方法(What is next for information world mapping? International and multidisciplinary approaches to understanding information behaviors/ practices in …

19. 从零用Rust编写正反向代理, 配置数据的热更新原理及实现

wmproxy wmproxy是由Rust编写,已实现http/https代理,socks5代理, 反向代理,静态文件服务器,内网穿透,配置热更新等, 后续将实现websocket代理等,同时会将实现过程分享出来&#xff…

原料药开发研发审批流程(注册必读)

仿制药注册申报简化流程:立项调研-->工艺路线的筛选与确定-->反应参数的优化-->中间体以及粗品的纯化后处理-->API 的结构确证-->杂质研究-->晶型研究-->工艺放大-->公斤级试验以及中试-->资料撰写-->注册申报 (文末附注册申报全流程…

移动通信系统关键技术多址接入MIMO学习(8)

1.Multiple-antenna Techniques多天线技术MIMO,从SISO到SIMO到MISO到如今的MIMO; 2.SIMO单发多收,分为选择合并、增益合并;SIMO,基站通过两路路径将信号发送到终端,因为终端接收到的两路信号都是来自同一天…

ROS2——Parameters

节点可以使用参数来配置各项操作,这些参数可以说布尔值、整数、字符串等类型。节点在启动时会读取参数。我们将参数单独列出来,而不是写在源文件中,这样做可以方便我们调试,因为在不同的机器人、环境中,我们需要的参数…

第8章-第1节-Java中的泛型(参数化类型)

1、泛型在java中有很重要的地位&#xff0c;在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型&#xff1f;为什么要使用泛型&#xff1f; List arrayList new ArrayList(); arrayList.add("aaaa"); arrayList.add(100);for(int i 0; i< arrayList.…

R语言【base】——strsplit():将字符向量的元素根据对子字符串的匹配拆分为子字符串。

Package base version 4.2.0 Usage strsplit(x, split, fixed FALSE, perl FALSE, useBytes FALSE) Arguments 参数【x】&#xff1a;字符向量&#xff0c;其中的每个元素将被拆分。其他输入&#xff0c;包括一个因子&#xff0c;将报错。 参数【split】&#xff1a;包含…