学习如何在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']()