Ruby'in ||=
mekanizmasını seviyorum. Bir değişken yok veya nil
ise vermezse, o zaman yaratmak ve eşit bir şeye ayarlayın:Ruby's || = (veya eşittir) JavaScript'te?
amount # is nil
amount ||= 0 # is 0
amount ||= 5 # is 0
Şimdi JavaScript benzer bir şey yapmak gerekir. Bu kongre ya da uygun yolu nedir? Biliyorum ||=
geçerli bir sözdizimi değil. Eğer Ruby ||=
gibi çalışır şey arıyorsanız eğer
window.myLib = window.myLib || {};
// or
if (!window.myLib)
window.myLib = {};
Pratikte öyle görünüyor ki a = a || b 'formu daha uygun http://jsperf.com/x-or-x-equals-0-vs-x-equals-x-or-0/3 – jchook
ah güzel bir araçtır. x'in bir değeri ve çok kısa devreleri varsa neye benziyor? – chris
Yırtmaların jsperf üzerinde açık olması gerektiğine inanıyorum, bu yüzden [bu test] (http://jsperf.com/x-or-x-equals-0-vs-x-equals-x-or-0/4) kısa devre performansı. Tahminimce, V8'in form için özel bir optimizasyonu var: a = a || b'. – jchook