美文网首页
Object方法

Object方法

作者: YoungEvita | 来源:发表于2021-06-11 20:09 被阅读0次

一、Object.assign()

用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。

语法

Object.assign(target, ...sources)

参数

target —— 目标对象
sources —— 源对象

返回值

目标对象

描述

如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖。后面的源对象的属性将类似地覆盖前面的源对象的属性
Object.assign 方法只会拷贝源对象自身的并且可枚举的属性到目标对象
Object.assign()拷贝的是(可枚举)属性值。假如源值是一个对象的引用,它仅仅会复制其引用值

示例
var obj1 = {
    a: 1,
    b: 2,
    c: 3
}

var obj2 = {
    a: 2,
    d: 4
}

console.log(Object.assign({}, obj1, obj2)) // {a: 2, b: 2, c: 3, d: 4}

针对深拷贝,需要使用其他办法(JSON.parse(JSON.stringify(obj1))),因为 Object.assign()拷贝的是(可枚举)属性值。
假如源值是一个对象的引用,它仅仅会复制其引用值。

var obj1 = {
    a: 1,
    b: 2,
    c: {
        value: 3
    }
}

var obj2 = {
    a: 2,
    d: 4
}

obj3 = Object.assign({}, obj1, obj2)
console.log(obj3) // {a:2, b:2, c:{value:3}, d:4}


obj2.a = 5
console.log(obj2) // {a:5, d:4}
console.log(obj3) // {a:2, b:2, c:{value:3}, d:4} ,a并未同步更新

obj1.c.value = 6
console.log(obj1) // {a:1, b:2, c:{value:6}}
console.log(obj3) // {a:2, b:2, c:{value:6}, d:4} , c同步更新
var obj1 = {
    a: 1,
    c: {
        value: 2
    }
}

var obj2 = JSON.parse(JSON.stringify(obj1))
console.log(obj2) // {a:1, c:{value:2}}

obj1.c.value = 7
console.log(obj1) // {a:1, c:{value:7}}
console.log(obj2) // {a:1, c:{value:2}} // obj1的改变,并未影响obj2

二、Object.setPrototypeOf()

设置一个指定的对象的原型 ( 即, 内部[[Prototype]]属性)到另一个对象或 null

语法

Object.setPrototypeOf(obj, prototype)

参数

obj —— 要设置其原型的对象
prototype —— 该对象的新原型(一个对象或null)

示例

var parent = {
    foo1() {
        console.log("Hello from the Parent");
    }
}

var child = {
    foo() {
        console.log("Hello from the Child");
    }
}

Object.setPrototypeOf(child, parent);
child.foo1(); // Hello from the Parent
child.foo()    // Hello from the Child
参考

[1]. Web 开发技术
[2]. ES6简明教程

相关文章

  • Object的标准库

    Object 的静态方法 所谓的Object静态方法就是部署在Object对象本身的一些方法 Object.key...

  • Object 对象

    分为 Object 静态方法和Object 实例方法 静态方法就是直接定义在Object 对象上 实力方法是定义在...

  • Object类中常见的方法

    一.Object类中的toString()方法 object 默认方法 toString方法,toString()...

  • JavaScript的标准库

    1. Object对象 静态方法 所谓“静态方法”,是指部署在Object对象自身的方法。 Object.keys...

  • 前端理论面试-数据拷贝

    Object.assign()方法、slice()方法和concat()方法的拷贝 Object.assign()...

  • 标准库

    Object 对象 1. Object静态方法 (1) 对象属性模型的相关方法Object.keys() : 获取...

  • Object上的方法

    Object 对象 1. Object静态方法 (1) 对象属性模型的相关方法Object.keys() : 获取...

  • 静态方法

    1、全部静态方法 object className {} 2、部分静态方法 companion object { ...

  • 对象方法 2019-12-15

    Array对象下的方法 String对象下的方法 some()方法 Object.keys()方法 Object....

  • 02-JavaScript常见的对象方法

    Object 常用方法 Object.entries() Object.entries(value : any) ...

网友评论

      本文标题:Object方法

      本文链接:https://www.haomeiwen.com/subject/myypeltx.html