zoukankan      html  css  js  c++  java
  • js对象操作方法大全!!对象遍历,创建对象,对象拷贝

    1、创建对象
    对象创建有两种方式,一是直接将一个对象值赋值给目标变量,二是使用声明
    (1)var obj = {} 
    (2)var obj = new Object()
    (3)Object.create()使用现有的对象来提供新创建的对象的__proto__。 
        //前面省略person对象
    const me = Object.create(person);
    me.name = "Matthew"; // "name" is a property set on "me", but not on "person"
    me.isHuman = true; // inherited properties can be overwritten
    me.printIntroduction();
    // expected output: "My name is Matthew. Am I human? true"
     
    2、添加属性:
    (1)Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回这个对象。
    (2)Object.defineProperties() 方法直接在一个对象上定义新的属性或修改现有属性,并返回该对象。
     (3)直接添加。
    3、对象属性删除delete;
    var obj = {  a: 1,  b: 2}delete obj.a
    如果属性值清空,则直接赋值为空就好了obj.a = ''
     
    4、复制:
    1、直接赋值 var a=b
    2、Object.assign() 实现对象的浅拷贝【若对象里的属性值为引用类型,则拷贝的是地址】
    3、JSON.parse(JSON.stringify(obj))深拷贝。
    会主动丢弃(1)值为undefined的属性。
        (2)值为Function类型的属性。
        (3)值为Symbol类型。
        (4)原型属性。
    4、扩展运算符...
     
    5、对象的遍历
    (1)for......in,for (let x of obj)
      (2)Object.key(obj)返回一个属性数组
    (3)Object.values(obj)返回一个值数组
    (4)Object.getOwnPropertyNames(obj) 返回一个数组,它包括自身所有属性
    // 使用Array.forEach输出属性名和属性值
    Object.getOwnPropertyNames(obj).forEach(function(val, idx, array) {
      console.log(val + " -> " + obj[val]);
    });
    // 输出
    // 0 -> a
    // 1 -> b
    // 2 -> c
    (5)Object.getOwnPropertySymbols(obj) 返回数组,包含对象自身所有属性,包括Symbol
     
    6、冻结
    Object.freeze() 方法可以冻结一个对象。冻结后不能做任何操作。

  • 相关阅读:
    JAVA基础知识之多线程——三种实现多线程的方法及区别
    JAVA基础知识之Collections工具类
    JAVA基础知识之Map集合
    JAVA基础知识之Queue集合
    JAVA基础知识之List集合
    JAVA基础知识之Set集合
    Java基础知识之集合(容器)简介
    JAVA中STL使用
    博客园皮肤
    RMQ
  • 原文地址:https://www.cnblogs.com/jundongsheng/p/13617863.html
Copyright © 2011-2022 走看看