Pas*_*cal 2 javascript typescript ecmascript-6
我有一个常见的打字稿类和一些函数.
当我做 this.selected = Object.assign({} as AssignedTestType, newTestType);
选定的实例不拥有该功能,这些都是type AssignedTestType.
如何使用object.assign制作"深层"副本?或任何替代方法?
如果您要复制的属性位于原型中newTestType,则不会复制它们,因为Object.assign只复制对象实例自己的属性.
替代方法是实例化您用于创建的任何构造函数newTestType,并将结果实例分配给this.selected,或创建一个空对象并将其原型设置为newTestType.在任何一种情况下,这Object.assign都是错误的工具.
object.assign不复制函数
那是不真实的
let x = {a: y => y * 2}
let z = Object.assign({}, x)
console.log(z.a(5)); // 10Run Code Online (Sandbox Code Playgroud)
所选实例不拥有AssignedTestType类型的函数.
现在这部分是真的.Object.assign只会做一个浅拷贝,只会枚举自己的道具
| 归档时间: |
|
| 查看次数: |
6732 次 |
| 最近记录: |