美文网首页前端大杂烩
实现 Object.assign

实现 Object.assign

作者: lio_zero | 来源:发表于2022-05-25 16:14 被阅读0次

    Object.assign() 方法将所有可枚举(Object.propertyIsEnumerable() 返回 true)和自有(Object.hasOwnProperty() 返回 true)属性从一个或多个源对象复制到目标对象,返回修改后的对象。

    • 目标对象不能是 nullundefined,否则将抛出错误
    • 源对象可有多个,使用剩余运算符收集,通过循环判断每个对象的是否为自身属性,添加到目标对象。
    Object.myAssign = function (target, ...source) {
      if (target == null) {
        throw new TypeError('Cannot convert undefined or null to object')
      }
      let ret = Object(target)
      source.forEach((obj) => {
        if (obj != null) {
          for (let key in obj) {
            if (obj.hasOwnProperty(key)) {
              ret[key] = obj[key]
            }
          }
        }
      })
      return ret
    }
    

    相关文章

      网友评论

        本文标题:实现 Object.assign

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