在JavaScript中动态地访问一个对象的方法

59 阅读1分钟

学习如何在JavaScript中动态地访问一个对象的方法

有时你有一个对象,你需要调用一个方法,或不同的方法,这取决于某些条件。

例如,你有一个car 对象,你要么想把它drive() ,要么想把它park() ,这取决于driver.sleepy 值。

如果司机的困倦程度超过6,我们需要在它开车时睡着之前把车停好。

下面是如何用一个if/else 条件来实现这个目的。

if (driver.sleepy > 6) {
  car.park()
} else {
  car.drive()
}

让我们重写一下,使之更加动态。

我们可以使用三元操作符来动态选择方法名称,把它作为字符串值来获取。

使用方括号我们可以从对象的可用方法中选择它。

car[driver.sleepy > 6 ? 'park' : 'drive']

通过上面的语句,我们得到了方法的引用。我们可以通过附加括号直接调用它。

car[driver.sleepy > 6 ? 'park' : 'drive']()