这是一个简化的课程。 我尝试在构造函数中循环键值,以动态地为此赋值。但它不起作用。这是语法问题吗?或者是不可能的?
class DirectoryModel {
public link_title: string
public link_desc: string
constructor(fields: any) {
console.log(fields) // ok
_.forOwn(fields, function (value, key) {
console.log(key) // ok
console.log(value) // ok
this[key] = value // "Cannot set property 'link_title' of undefined"
})
// this.link_title = fields.link_title
// this.link_desc = fields.link_desc
}
}
答案 0 :(得分:1)
正如Yasser评论的那样,this
未绑定到您的DirectoryModel。使用arrow functions将this
绑定到您的实例:
class DirectoryModel
{
public link_title: string
public link_desc: string
constructor(fields: any)
{
_.forOwn(fields, (value, key) => //This binds `this`
{
this[key] = value
})
}
}