对象的新增方法(笔记)

Object.assign()

1.Object.assign方法用于对象的合并,将源对象的所有可枚举属性,复制到目标对象。(浅拷贝)

const target = { a: 1 }; //目标对象
const source1 = { b: 2 }; //源对象
const source2 = { c: 3 }; //源对象

//第一个参数是目标对象,后面的可以设置多个源对象
Object.assign(target, source1, source2);
console.log(target) // {a:1, b:2, c:3}

2.如果对象之间有同名属性,复制的时候后面的属性会覆盖前面的属性。
3.如果只有一个参数,则直接返回此参数。

const obj = {a: 1};
Object.assign(obj) === obj // true

4.如果该参数不是对象,则会先转成对象,然后返回。
5.由于undefined和null无法转成对象,所以如果它们作为第一个参数目标对象,就会报错。
如果作为源对象参数,源对象中无法转成对象的,就会跳过,不会报错。
6.只拷贝源对象的自身属性(不拷贝继承属性),也不拷贝不可枚举的属性。

Object.keys,Object.values,Object.entries()

1.Object.keys()返回对象所有可遍历的属性名(不包含继承的)

let obj = { a: 1, b: 2, c: 3 };
for (let key of Object.keys(obj)) {
     console.log(key); // 'a', 'b', 'c'
}

2.Object.values() 返回对象所有可遍历的属性值(不包含继承的)

let obj = { a: 1, b: 2, c: 3 };
 for (let key of Object.values(obj)) {
      console.log(key); // '1', '2', '3'
 }

3.Object.entries() 返回对象所有可遍历的键值对数组(不包含继承的)

let obj = { a: 1, b: 2, c: 3 };

for (let key of Object.entries(obj)) {
    console.log(key); // ["a", 1], ["b", 2],["c", 3]
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.属性的简洁表示法 允许直接写入变量和函数 上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量...
    雨飞飞雨阅读 1,292评论 0 3
  • 属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。 上面代码表明,ES6允许在对象之中,直接写...
    oWSQo阅读 583评论 0 0
  • 属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 上面代码表明,ES6允...
    呼呼哥阅读 3,038评论 0 2
  • 1.属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 const fo...
    Masami_9e88阅读 390评论 0 0
  • 每个人都是一棵繁花似锦的树 小组练习《界定仪式》,有人当求助者,有2个人当咨询师,其他成员是见证者。 我报名当求助...
    漂亮的花阅读 651评论 0 5

友情链接更多精彩内容