javascript是否有类似Object.assign的东西,在复制对象时包含enumerable:false属性?

javascript是否有类似Object.assign的东西,在复制对象时包含enumerable:false属性?,javascript,Javascript,似乎Object.assign没有分配不可枚举的属性 var weasel = {test: 1}; Object.defineProperty(weasel, 'isFetching', { value: true, writable: true, enumerable: false }) Object {test: 1, isFetching: true} Ob

似乎
Object.assign
没有分配不可枚举的属性

var weasel = {test: 1};
Object.defineProperty(weasel,
          'isFetching',
          {
            value: true,
            writable: true,
            enumerable: false
          })
Object {test: 1, isFetching: true}
Object.assign({}, weasel);
Object {test: 1}

有办法解决这个问题吗?

您可以使用以下单行程序:

x=Object.getOwnPropertyNames(weasel).reduce((a,b)=>(Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(weasel,b)),a),{})

您可以使用这一行:

x=Object.getOwnPropertyNames(weasel).reduce((a,b)=>(Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(weasel,b)),a),{})

@Andreas
Object.assign
?OP只要求解决非可枚举性问题,而不是复制描述符。我把这件事搞砸了。。。我想我会让它看起来很漂亮。这不会克隆原型,但要实现这一点,您需要做的就是使用对象。create@Andreas
Object.assign
是否也可以?OP只要求解决非可枚举性问题,而不是复制描述符。我把这件事搞砸了。。。我想我会让它看起来很漂亮。这不会克隆原型,但要实现这一点,您需要做的就是使用对象。create@Andreas您可能需要
Object.create(Object.prototype,…)
尽管-甚至使用
Object.getPrototypeOf(weasel)
。或者使用
Object.defineProperties({},Object.getOwnPropertyDescriptors(weasel))
而不是检查这个@Andreas,因为你可能想要
Object.create(Object.prototype,…)
尽管-或者甚至使用
Object.getPrototypeOf(weasel)
。或者使用
Object.defineProperties({},Object.getOwnPropertyDescriptors(weasel))