我尝试将变量(this)绑定到整个类。如果不将someEditFunction中的参数传递给anotherFunction,这是否可行?
我创建了一支笔:https://codepen.io/anon/pen/vRBVRj
class Person {
constructor(name) {
this._name = name
}
entryPoint() {
ClassTwo.someEditFunction.bind(this)()
}
}
class ClassTwo {
static someEditFunction() {
console.log('called someEditFunction', this._name) // this._name is John
ClassTwo.anotherFunction()
}
static anotherFunction() {
console.log('called anotherFunction', this._name) // this._name is undefined
}
}
let person1 = new Person('John', 15)
person1.entryPoint()
答案 0 :(得分:0)
编辑:我误解了这个问题,无视以前的答案:)
基本上你的问题是,静态方法不应该使用类中的任何变量。他们应该作为实用方法自己行动。所以你传递变量doThing(a,b)而不是绑定和滥用这个'这只是混淆了一切。
如果您希望这些方法只使用实例化对象,即实例方法,则删除静态声明并使其成为原型方法。 helpful docs