html assign无效,Object.assign的一些用法

Object.assign的一些用法

2020/11/12 20:19:03  字体:大 中 小 浏览 1289 我要评论

b8e5be3e73e49cec83127783bda0decc.gif

660c1dce368e50df695cd58a781c9f25.gif

ff886d0cf9d645b88ac7df686ed5bbe1.gif

a228b0bb11b6ca00f0d8df13df93d6f1.gif

5ae08058a671177c58cd16f4952d687b.gif

28e33134612665f8a4636df96fc3af91.gif

c4be00e1ece500675a129d09c82307de.gif

2c4230e45fdc1ab2f4208697d2b33edd.gif

需要定制网站程序、公众号程序、微信小程序可以联系:565449214或者加微信13961347334(备注:需要技术)

或者在处理一些技术问题时,有什么不懂的地方,随时可以加我QQ:565449214讨论技术或者加QQ群62655404讨论

用法1:替换数组的值

let a = [1,2,3],b = [4,5]

console.log( Object.assign(a,b)); // 后面的值覆盖前面的值,[4,5,3]

用法2:为对象添加属性

下面是es5的写法:this.xxx =xxx

//    es5的写法

class Test{

constructor(x,y){

this.x =x

this.y = y

}

sum(){

return this.x + this.y

}

}

let t = new Test(1,2)

console.log(t.sum());

用Object.assign的写法

// Object.assign的写法

class Test2{

constructor(x,y){

Object.assign(this,{x,y})

}

sum2(){

return this.x + this.y

}

}

let t2 = new Test2(1,2)

console.log(t2.sum2());

用法3 深度克隆对象

//    用法3 深度克隆对象

let clone = (orignObj) => {

let originProto = Object.getPrototypeOf(orignObj)

return Object.assign(Object.create(originProto), orignObj)

}

let obj3 = { name: 'zs', age: 12 }

console.log(clone(obj3));

用法4:合并对象属性

下面这种写法,合并后,原来的两个对象都已经改变

// example1

let obj = {name:'zs'} ,obj2 = {name:'zs',age:12}

let merge = (target, ...v) => Object.assign(target, ...v)

console.log(merge(obj,obj2));// {name:'zs',age:12}

console.log(obj,obj2); // 合并后,两个对象都已经改变,值都是 {name:'zs',age:12}

如果不想改变原来的对象,可以用下面这个写法

// example2 合并后,返回一个新对象,不更改原有对象的属性

let merge2 = (...v) => Object.assign({}, ...v)

console.log(merge2(obj, obj2));// {name:'zs',age:12}

console.log(obj); //  原来的对象保持原样  {name:'zs'}

console.log(obj2); //  原来的对象保持原样  {name:'zs',age:12}

//合并对象,还可以用展开操作符

let obj5 = {name:'zs'},obj6 = {age:12}

let newOjb = {...obj5,...obj6}

console.log(newOjb);

用法5.为默认对象新增属性

const DEFAULTS = { name: 'zs', age: 13 } // 默认对象

let createObjWithDefault = (opt) => Object.assign({}, DEFAULTS, opt)

console.log(createObjWithDefault({ 'addr': 'gz' }));

9f20b987662dbe593713a2494620bfd3.png

99b4fbe0cab4535784c5588b9ae72181.png

正在加载评论……

呢 称:

表 情:

76207ad7f062fd1221aae117bae9f4dd.gif

d979e8ee9deca1c3b68a6486add1275a.gif

ca34335d0441fa6d944a2b48ced886ee.gif

e0490ca19708bb04c950b0b20a4b3445.gif

70e5674d73fb7c4c9c04346f46777494.gif

b981f04e2e1dcf4b13c1211c30ba9172.gif

975872c06344b0f05e3f3b49e80932c4.gif

7265fa957f73e3e18f993c6a612e7411.gif

0d3ca9b4b879d612b54c1689a17a809a.gif

0fc4ef5dfed3727c3bd614f192a04c7f.gif

19adb11d2752d7506949237a2358931a.gif

7017d810191c34e2580ddfb8b15dd8e3.gif

b4152965d82061656f399ac98328534c.gif

016564cc6c718044650b9768688b64a6.gif

c06dc6fbc7f127e7597d384b7009db34.gif

8304c6a824d70923ce5d5095989be60a.gif

c2787afe8081ddf16bedc84e8341e8ca.gif

b84c0ee1eec293e9628041c7dbdc6f8f.gif

6bc706ceb394e09b7ffb517b7a470dbe.gif

4635249215acf4f8e41239992e420214.gif

975b1f08a1ff7b55d8a9a4ca0ebd600c.gif

内 容:

评论内容:不能超过 1000 字,需审核,请自觉遵守互联网相关政策法规。

验证码:

d2c83c8c7b93ea14d41de6904ff03bdd.png

深山工作室网友评论声明,请自觉遵守互联网相关政策法规。

您发布的评论即表示同意遵守以下条款:

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家、社会、集体和公民的合法权益;

二、不得发布国家法律、法规明令禁止的内容;互相尊重,对自己在本站的言论和行为负责;

三、本站对您所发布内容拥有处置权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值