美文网首页
Object spread(对象展开语法) vs. Object

Object spread(对象展开语法) vs. Object

作者: 晓风残月1994 | 来源:发表于2019-08-17 13:46 被阅读0次

    Object spread vs. Object.assign:
    For the most part object reset and spread work the same way, the key difference is that spread defines properties, whilst Object.assign() sets them. This means Object.assign() triggers setters.

    最主要的区别是Object.assign设置属性时会触发setter

    Object.assign(
        {
            set a(v) { this.b = v }, 
            b: 2
        }, 
        { a: 4 }
    )
    // { b: 4 }
    
    {
        ...{
            set a(v){ this.b = v },
            b:2
        }, 
        ...{ a: 4 }
    }
    // { a: 4, b: 2 }
    

    PS: 上面的 setter/getter 是字面量写法,与使用 Object.defineProperty() 来定义是一样的。,可参阅 《JavaScript 高级程序设计》P141 —— 访问器属性 这一小节。

    相关文章

      网友评论

          本文标题:Object spread(对象展开语法) vs. Object

          本文链接:https://www.haomeiwen.com/subject/tqnhsctx.html