CoffeeScript bileşeniyle biraz garip bir şey fark ettim ve bunun doğru bir davranış olup olmadığını merak ettim. Doğru ise bir fark var neden merak ediyorum ..CoffeeScript Varolan Operatör ve bu
aşağıdaki CoffeeScript Verilen:
if @myVar?
alert myVar
böyle JavaScript derlemek için bekliyordum:
if (typeof this.myVar !== "undefined" && this.myVar !== null) {
alert(myVar);
}
Ama bunun yerine CoffeeScript derleyici çıktıları şu şekildedir: Bu referansı kullanmıyorsam (veya başka bir ana nesne), CoffeeScript beklediğim gibi derler.
Bu doğru davranış mı? Eğer öyleyse, bunu kullanırken neden farklı çalışır?
Düzenleme:
biraz daha fazla açıklama eklemek için. Bu sadece bununla değil, nesnelerin diğer özellikleriyle gerçekleşmez. yapabiliyor
myVar = 10
if myVar?
alert myVar
CoffeeScript derleyici: "= null" Mesela ben sanki durumunda ... hala sadece birlikte derlemek ediyorum
if myVar.myProp?
alert myVar
olası yinelenen özellikleri] (http://stackoverflow.com/questions/9990117/existential-operator-and-object-properties) –