作为参数传递的对象的 JavaScript 调用方法

威廉·比斯蒂

JavaScript 新手。我正在尝试调用作为参数传递给另一个方法的对象的方法。我不断收到参数为空或参数没有名为 x 的方法的错误。

在像 c# 这样的强类型语言中,你可以这样做

public class Context 
{
  public void moveTo(int x, int y) {...}
  public void lineTo(int x, int y) {...}
}
public class Square
{
  public void draw(Context c, int x, int y) {
    c.moveTo(x,y);
    c.lineTo(x+10,y+5); //etc
  }
}
public class Design
{
  ctx = new Context();
  s = new Square();
  s.draw(ctx,5,10);
}

我画的不是正方形,而是更复杂的东西。但是在我对 Javascript 的尝试中,当它编译时,它在 draw 中得到一个错误,即 c 为空,没有方法 lineTo。

这样做的 Javascript 方式是什么?

埃尔顿·维亚纳

好吧,在 JavaScript 中你可以这样做:

let sum = {
  operation: (a, b) => a + b
};

let minus = {
 operation: (a, b) => a - b
};

let obj = {
 applyOperation: (obj, a, b) => obj.operation(a, b)
};

obj.applyOperation(sum, 1, 2);    // => 3
obj.applyOperation(minus, 1, 2);  // => -1

如果你传递一个空对象 ( {}) 你会收到一个TypeError异常,在这种情况下会是这样的:TypeError: obj.operation is not a function

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何模拟在JUnit Test下作为方法的方法参数传递的某些对象的方法调用

调用作为参数传递给Frida中的钩子函数的Java对象的方法

如何将对象属性作为参数传递?(JavaScript)

Java 8:将对象的方法及其参数作为参数传递

有什么方法可以将PHP对象作为HTML中的JavaScript参数传递?

Javascript:当对象拥有函数时,为什么在apply方法中将相同的对象作为参数传递?

如何在Javascript中将对象的方法作为参数传递

JavaScript-使用Apply来调用函数,但是未将'this'设置为作为第一个参数传递的对象

javaScript-将对象作为函数参数传递

传递给方法对象值作为参数

避免在同一实例上调用委托方法时将对象的实例作为参数传递?

在Javascript中将对象作为参数传递给函数

将函数作为参数传递并调用javascript

Python调用函数作为对象的参数传递

对象的传递方法作为参数

Javascript:允许将作为参数传递的对象方法访问公共方法

在JavaScript中将多个对象作为参数传递

Ruby在对象上调用方法,而不是将对象作为方法的参数传递

javascript调用方法中的“ this”对象

在Javascript构造函数中将键/值对象作为参数传递

取消导出作为远程方法调用中的参数传递的远程对象

从Angular2组件将对象作为参数传递时,未调用外部HTML文件中的JavaScript函数

从Javascript方法访问调用对象

NxBRE规则引擎,使用传递对象作为参数的调用方法

在 Javascript 中调用对象方法

调用方法,将对象作为类型传递

TypeScript:传递对象的方法作为参数调用

调用作为参数传递的类方法

将方法作为参数传递并在对象上使用该方法(Javascript)