es6 javascript对象方法Object.assign()
阅读数:71 评论数:0
跳转到新版页面分类
html/css/js
正文
一、基本用法
Object.assign方法用于对象的合并,将源对象的所有可枚举属性复制目标对象。
var target = { a: 1 };
var source1 = { b: 2 };
var source2 = { c: 3 };
Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}
如果多个源对象有同名属性,则后面的属性会覆盖前面的属性。
Object.assign拷贝的属性是有限制的,只拷贝源对象的自身属性(不拷贝继承属性),也不拷贝不可枚举属性。
二、浅拷贝
Object.assign方法实行的是浅拷贝,也就是说,如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用。
var obj1 = {a: {b: 1}};
var obj2 = Object.assign({}, obj1);
obj1.a.b = 2;
obj2.a.b // 2
源对象obj1的a属性的值是一个对象,Object.assign拷贝得到的是这个对象的引用。这个对象的任何变化,都会反映到目标对象上面。
三、常见用途
1、为对象添加属性
class Point {
constructor(x, y) {
Object.assign(this, {x, y});
}
}
2、为对象添加方法
Object.assign(SomeClass.prototype, {
someMethod(arg1, arg2) {
···
},
anotherMethod() {
···
}
});
// 等同于下面的写法
SomeClass.prototype.someMethod = function (arg1, arg2) {
···
};
SomeClass.prototype.anotherMethod = function () {
···
};
3、克隆对象
function clone(origin) {
return Object.assign({}, origin);
}
4、合并多个对象
const merge =(...sources) => Object.assign({}, ...sources);
5、为属性指定默认值
const DEFAULTS = {
logLevel: 0,
outputFormat: 'html'
};
function processContent(options) {
let options = Object.assign({}, DEFAULTS, options);
}
相关推荐
一、script标签属性
async
表示立即下载该脚本,但不妨碍页面中的其他操作,只对外部文件有效。
charset
与src属性一起使用,告诉浏览器用来编码这个javascript程序的
ECMAscript 5添加了第二种运行模式:严格模式(strict mode)。
//针对单个脚本
<script>
"use strict";
console.log("这是严格模式
因为map的key可以为任何类型, 包括对象. 但是JSON语法, key只能为string. 所以不能直接对JSON.stringify(Map).
1.但是可以先把map转换为
一、使用let声明变量
1、与使用var声明变量的区别
(1)变量不能重复说明
(2)不存在变量提升(在执行function函数之前,所有变量都会被提升至函数作用域顶部)
(3)存在块级作用域(不允许
一、概述
THREE.Object3D 是 Three.js 的基础类,用于表示 3D 空间中的一个对象。几乎所有的 3D 对象(如 Mesh、Group、Camera、Light 等)都继承自 TH
一、forEach
如果不做特殊处理,一般情况下,不会break的。如果需要中途跳出循环,建议直接用for语句。
let arr = [1,2,3,4,5];
arr.forEach((item,in
一、window对象
在javascript中,一个浏览器窗口就是一个window对象,window对象以及这些子对象,由于都是用于操作浏览器窗口,所以我们又称为BOM(Browser Object
Math.random()方法会返回介于0(包含)~1(不包含)之间的一个随机数。
舍掉小数点后的数值的方法有很多,如parseInt(),Math.ceil(),Math.flo
一、async
将不是Promise对象的返回值封装,如果有返回值返回为resolved的Promise,如果没有返回值,则返回rejected的Promise。
1、异步函数的返回值
(1)如果是普