Meslektaşım JavaScript'te yeni nesneleri tanımlamak için küçük harfle "f" olan "new function ()" kullanıyor. Tüm büyük tarayıcılarda iyi çalışıyor gibi görünüyor ve ayrıca özel değişkenleri gizlemede oldukça etkili görünüyor. İşte bir örnek:
var someObj = new function () {
var inner = 'some value';
this.foo = 'blah';
this.get_inner = function () {
return inner;
};
this.set_inner = function (s) {
inner = s;
};
};
"Bu" kullanılır kullanılmaz, someObj'nin kamu malı haline gelir. Yani someObj.foo, someObj.get_inner () ve someObj.set_inner () herkesin kullanımına açıktır. Ek olarak, set_inner () ve get_inner () ayrıcalıklı yöntemlerdir, bu nedenle kapatmalar yoluyla "iç" e erişime sahiptirler.
Ancak, hiçbir yerde bu tekniğe referans görmedim. Douglas Crockford'un JSLint'i bile bundan şikayet ediyor:
- garip inşaat. "Yeni" yi sil
Bu tekniği üretimde kullanıyoruz ve iyi çalışıyor gibi görünüyor, ancak bu konuda biraz endişeliyim çünkü hiçbir yerde belgelenmedi. Bunun geçerli bir teknik olup olmadığını bilen var mı?
this
, nesnenizi değil, olayı tetikleyen öğeye atıfta bulunacaktır, ancakvar instance = this
bunun yerine sahip olabilirsiniz .