學習如何在JavaScript中動態訪問對象的方法
有時候你有一個對象,根據某些條件需要調用一個方法或不同的方法。
例如,你有一個 car
對象,根據 driver.sleepy
的值,你可能想要把它開車(drive()
)或停車(park()
)。
如果司機的瞌睡程度超過6,我們需要在他開車時把車停下來。
以下是使用 if/else
條件語句實現此功能的例子:
if (driver.sleepy > 6) {
car.park()
} else {
car.drive()
}
讓我們重寫這個例子,使它更加動態。
我們可以使用三元運算符動態選擇方法名,並將它作為字符串值獲取。
使用方括號,我們可以從對象的可用方法中選擇它:
car[driver.sleepy > 6 ? 'park' : 'drive']
通過上面的語句,我們獲取了方法的引用。我們可以通過追加括號來直接調用它:
car[driver.sleepy > 6 ? 'park' : 'drive']()