JS |将变量绑定到整个类

时间:2018-03-08 08:18:52

标签: javascript node.js ecmascript-6

我尝试将变量(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()

1 个答案:

答案 0 :(得分:0)

编辑:我误解了这个问题,无视以前的答案:)

基本上你的问题是,静态方法不应该使用类中的任何变量。他们应该作为实用方法自己行动。所以你传递变量doThing(a,b)而不是绑定和滥用这个'这只是混淆了一切。

如果您希望这些方法只使用实例化对象,即实例方法,则删除静态声明并使其成为原型方法。 helpful docs