Object.assign的用法

Object.assign是JavaScript中的一个静态方法,用于将一个或多个源对象的所有可枚举属性复制到目标对象。如果目标对象中有与源对象相同的属性,则源对象的属性会覆盖目标对象的同名属性。该方法返回目标对象。

基本用法

Object.assign(target, ...sources)

  • target:目标对象,复制属性到此对象。
  • sources:一个或多个源对象,其属性将被复制到目标对象。

示例

  1. 目标对象和源对象没有同名属性

    var source = {state: 'single'};
    var result = Object.assign(target, source);
    console.log(target, target === result); // {name: 'guxin', age: 18, state: 'single'}, true```
    
    
  2. 目标对象和源对象有同名属性

    var source = {age: 22};
    var result = Object.assign(target, source);
    console.log(target); // {name: 'guxin', age: 22}``` 
    
    
  3. 有多个源对象

    var source1 = {age: 22};
    var source2 = {name: 'newName'};
    var result = Object.assign(target, source1, source2);
    console.log(target); // {name: 'newName', age: 22}``` 
    
    

注意事项和常见问题

  • 原始类型:原始类型(如字符串、数字、布尔值)会被包装为对象。
  • undefined和null:如果Object.assign的参数是undefinednull,则会报错,因为这些值无法转换为对象。
  • 深拷贝Object.assign只进行浅拷贝,不会复制源对象的引用类型属性中的对象。如果需要深拷贝,可以使用其他方法如JSON.parse(JSON.stringify(obj))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容