场景
- 定义了一个类的构造函数需要的参数是一个对象,而该对象的属性对class实例的属性进行了调用或修改,也就是在对象中使用了this
问题
- 示例
class Person { name: '' age: 0 sex: 0 setName: null constructor (person) { this.setName = person.setName } } const test = { setName: function (name) { this.name = name } } const p1 = new Person(test) p1.setName('小明')
- 这时p1.setName('小明')就会报错,说setName里的this是undefined
解决
- 这就需要在class的构造函数中改变参数的this指向,指向自己
class Person { name: '' age: 0 sex: 0 setName: null constructor (person) { this.setName = person.setName.bind(this) } }