Javascript将原型实例绑定到其属性的函数

时间:2017-08-02 16:22:33

标签: javascript scope ecmascript-6

我将一些原型方法分组到该原型的属性中。如何将这些方法的/run/secrets/kubernetes.io引用绑定到原型实例而不是该属性。

this

我怎样才能做到这一点?或者这是不可能的?

1 个答案:

答案 0 :(得分:0)

this的值取决于您调用方法的方式。所以如果你使用:

this.group.doSomething(arg1, arg2, arg3)

上下文为MyClass.prototype.group。您需要以不同方式调用该方法:

this.group.doSomething.call(this, arg1, arg2, arg3)

或:

this.group.doSomething.apply(this, [arg1, arg2, arg3])

或者,您可以重新创建group对象,将其分配给实例,并将方法绑定到构造函数中的所有实例。但是,这有效地避免了原型继承的好处。您将为类的每个实例上的每个方法创建一个新的函数实例。

也许如果你给出了一些关于为什么你觉得你需要命名你的实例方法的背景(这是一个非常罕见的实践,我会说),有人可以建议一个更好的选择。我觉得如果你的对象有很多实例方法需要分组/命名空间,你的类做得太多了,可能有更好的架构方法。