[英]Javascript instantiate user-defined class object from given object does not set all properties
我在 javascript 中有一个用户定义的 class PaymentCoordinator
,其构造函数如下所示:
constructor(
private amount: number,
private description: string,
private title: string,
private transactionType: string,
private creditors: Array<any>,
private categories: Array<string>,
private startdate: Date = undefined,
private enddate: Date = undefined,
obj: any = false)
构造函数obj
中的最后一个属性用于从给定的 object obj
实例化PaymentCoordinator
object - 这就像克隆给定的 object 一样。 在构造函数中,如果给定了一个obj
( obj !== false
),我将按如下方式进行克隆:
obj && Object.assign(this, obj);
给定obj
的所有属性都已正确设置 - 除了一个属性categories
是字符串数组。
我也试过:
obj && Object.assign(this, obj);
this.categories = obj.categories
但这也不会在新创建的 object 上设置categories
属性。
如果我 plot obj.categories
我验证了数组包含字符串。
任何想法为什么这不起作用?
JavaScript 中的对象通过引用传递
const obj = { array: [1, 2, 3] } const clone = Object.assign({}, obj) console.log(clone.array) obj.array.length = 0 console.log(clone.array)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.