Uwielbiam mechanizm Ruby o numerze ||=
. Jeśli zmienna nie istnieje lub jest nil
, a następnie utworzyć i ustawić go równa coś:Ruby's || = (lub equals) w JavaScript?
amount # is nil
amount ||= 0 # is 0
amount ||= 5 # is 0
muszę zrobić coś podobnego w JavaScripcie teraz. Jaka jest konwencja lub właściwy sposób na zrobienie tego? Wiem, że ||=
nie jest prawidłową składnią. 2 oczywistych sposobów, aby obsłużyć to:
window.myLib = window.myLib || {};
// or
if (!window.myLib)
window.myLib = {};
W praktyce wydaje się, że 'a = a || Forma b jest bardziej optymalna http://jsperf.com/x-or-x-equals-0-vs-x-equals-x-or-0/3 – jchook
ah fajne narzędzie. jak to wygląda, jeśli x ma wartość i tak krótkie obwody? – chris
Uważam, że rozłączenie musi być jawne na jsperf, więc [ten test] (http://jsperf.com/x-or-x-equals-0-vs-x-equals-x-or-0/4) powinien pokazać wydajność zwarcia. Domyślam się, że V8 ma specjalną optymalizację dla postaci 'a = a || b'. – jchook