将 javascript 方法作为参数传递

问题描述 投票:0回答:1

我已经使用 javascript 很长时间了,但是对 javascript 类却很生疏。对于我正在从事的特定项目,事情开始变得难以处理,我想开始将我的代码分割成单独的文件。我不想显式地

import
所有函数,所以我开始将它们包装成
Class
(这也有其他原因)。我的一些函数返回回调(函数)。那就是:

return functionName;

我可以这样使用:

var callBack = functionReturningFunction();
...
callBack();

我找不到任何有关返回和传递 方法 的信息,而不是 函数 那里的语法是什么?理想情况下,我想将方法作为参数传递给构造函数,这样我就可以说:

const myObject = new MyClass(methodName);

所以我不必这样做:

const myObject = new MyClass();
myObject.methodName();
javascript class methods syntax
1个回答
0
投票

当我打完问题时,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);
    
© www.soinside.com 2019 - 2024. All rights reserved.