我已经使用 javascript 很长时间了,但是对 javascript 类却很生疏。对于我正在从事的特定项目,事情开始变得难以处理,我想开始将我的代码分割成单独的文件。我不想显式地
import
所有函数,所以我开始将它们包装成 Class
(这也有其他原因)。我的一些函数返回回调(函数)。那就是:
return functionName;
我可以这样使用:
var callBack = functionReturningFunction();
...
callBack();
我找不到任何有关返回和传递 方法 的信息,而不是 函数 那里的语法是什么?理想情况下,我想将方法作为参数传递给构造函数,这样我就可以说:
const myObject = new MyClass(methodName);
所以我不必这样做:
const myObject = new MyClass();
myObject.methodName();
当我打完问题时,stackoverflow 仙女给了我答案。按照我的问题中的模式,我有:
return this.methodName;
我可以这样使用:
var callBack = myObject.methodReturningMethod();
...
callBack();
来自我的班级之外。 重要的是我应该:
methodReturningMethod(){
...
return this.aMethod.bind(this);
}
在
methodReturningMethod()
内部,如果aMethod()
访问任何对象属性,因为javascript是 * special * 像这样(如果我不这样做,就会感到困惑)。
在类方法内部我可以有类似的东西:
this.callBackMethod = this.methodReturningMethod();
...
this.callBackMethod();
它将调用
this.methodReturningMethod()
返回的任何方法。
我认为不可能将对象方法指定为该对象构造函数的参数,因为在构造对象之前对象方法不存在。 如果你知道方法,请大声喊出来。 在创建对象之后,我可以执行以下操作:
myObject.methodReceivingMethod(myObject.method);