我正在使用ES6的Object destructuring语法。 我想使用它来填充现有对象。
我有两个对象:
public int calcCRC(byte[] bitPlane) {
crc = 0;
for (int i = 0; i < bitPlane.length; i++) {
byte element = bitPlane[i];
crc ^= (element << 8);
for (int j = 0; j < 8; j++) {
boolean carry = ((crc & 0x8000) != 0);
crc <<= 1;
if (carry) {
crc ^= 0x1021;
}
}
}
return crc;
}
我想为let $scope = {};
let email = { from: 'cyril@so.com', to: 'you@so.com', ... };
对象分配一些email
对象属性。
目前,我最终还是这样做了:
$scope
在我的真实用例中,我有两个以上的属性要分配。
那么,您是否知道另一种方法改善并避免重复左侧分配部分中的({ from: $scope.from, to: $scope.to } = email);
?
答案 0 :(得分:1)
你是对的,你可以这样做:
Object.assign($scope, email);
然而,这不是不可变的,你实际上是在改变$ scope对象(在你的情况下这很好)。如果你想要一个不可变的操作,请执行以下操作:
$scope = Object.assign({}, $scope, email);
这将返回一个全新的对象。
此外,如果您在转换器中启用了Object Rest Spread功能,那么您可以执行此操作:
$scope = { ...$scope, ...email };
这也是不可变的,并在幕后使用Object.assign
。