Czy są jakieś istotne różnice (semantyczne, związane z wydajnością itp.) Pomiędzy (1) i (2)?(obj || {}) kontra Object (obj)
var obj = obj || {};
var obj = Object(obj);
kontekście. Po pierwsze dzielę zmienne między szablony Django i moje pliki js. Właśnie natknąłem się na odcinku w Rauschmayer 2014 ("Funkcje do konwersji Boolean, Number, łańcuch, i przedmiot", str. 79), w której opisał Object(obj)
następująco:
obj
jeśliobj
jest obiektem,{}
jeśliobj
jestundefined
lubnull
,- [owinięty prymitywny] Jeżeli
obj
wartości podstawowej.
Biorąc pod uwagę, że (bardzo nieformalne) semantyka (szczególnie pierwsze dwie klauzule), wydaje mi się, że możemy użyć (2) gdzie będziemy używać (1), ale nie jestem do końca pewien, co to konsekwencje będzie miał.
Rauschmayer, Axel (2014) Speaking JavaScript (za darmo do przeczytania online).
'1' jest pospolitym idiomem,' 2' nie jest. Aby uczynić twój kod zrozumiałym dla większości programistów, trzymaj się zwykłej składni. – Barmar