本文共 1667 字,大约阅读时间需要 5 分钟。
作为ECMAScript标准的一部分,Object.assign() 是一个强大的工具,用于将可枚举属性从一个或多个源对象复制到目标对象。它返回目标对象,允许我们轻松实现对象属性的合并和赋值。
Object.assign() 的调用方式如下:
Object.assign(target, ...sources)
var target = {name: 'guxin', age: 25};var source = {state: 'single'};var result = Object.assign(target, source);console.log(target, target === result); // {name: 'guxin', age: 25, state: 'single'}, true var result = Object.assign({}, target, source); var target = {name: 'guxin', age: 18};var source = {state: 'single', age: 22};var result = Object.assign(target, source);console.log(target); // {name: 'guxin', age: 22} var target = {name: 'guxin', age: 18};var source1 = {state: 'single', age: 22};var source2 = {mood: 'happy', age: 25};var result = Object.assign(target, source1, source2);console.log(target); // {name: 'guxin', age: 25, state: 'single', mood: 'happy'} 通过示例对比:
var target = {name: 'guxin', age: 18};var source1 = {state: 'single', age: 22};var source2 = {mood: 'happy', age: 25};var resultAssign = Object.assign(target, source1, source2);console.log(resultAssign); // {name: 'guxin', age: 25, state: 'single', mood: 'happy'}var resultExtend = $.extend(target, source1, source2);console.log(resultExtend); // {name: 'guxin', age: 25, state: 'single', mood: 'happy'} 两者功能相似,但在实现上有细微差异,主要体现在异常处理和性能上。
转载地址:http://tynfk.baihongyu.com/