Używam jQuery 1.7.1
Właśnie zaczynam używać operatora trójargumentowego JavaScript do zastępowania prostych instrukcji if / else. Zrobiłem to pomyślnie w kilku miejscach. Byłem zaskoczony, gdy udało mi się zrobić coś innego, kiedy myślałem, że na pewno nie, ale i tak próbowałem.
Oto oryginalne stwierdzenie:
function updateItem() {
$this = $(this);
var IsChecked = $this.hasClass("IsChecked");
if (IsChecked == true){
removeItem($this);
} else {
addItem($this);
}
}
Oto ta sama funkcja wykorzystująca operator trójskładnikowy:
function updateItem() {
$this = $(this);
var IsChecked = $this.hasClass("IsChecked");
(IsChecked == true) ? removeItem($this) : addItem($this);
}
Byłem zaskoczony, ponieważ wszystkie przykłady, które widziałem, były używane tylko do ustawiania takich zmiennych:
x = (1 < 2) ? true : false;
Moje pytanie brzmi, czy jest to „normalne” użycie i czy będzie działać w większości wersji JavaScript? Gdzie to się nie uda? Czy są inne, mniej oczywiste zastosowania?
AKTUALIZACJA - Dzięki za rady dotyczące „prawdziwego świata” !!!
Używam tego jako mojej funkcji:
function updateItem() {
$this = $(this);
$this.hasClass("IsChecked") ? removeItem($this) : addItem($this);
}