ES6 sınıf değişkeni alternatifleri
ES5 şu anda çoğumuz çerçeveler içinde desene rahat olan sınıflar ve sınıf değişkenleri oluşturmak için kullanarak
FrameWork.Class({
variable: 'string',
variable2: true,
init: function(){
},
addItem: function(){
}
});
ES6 ile sınıfları yerel yol oluşturmak için yeteneği var, ama sınıf değişkenleri için seçenek yok:
class MyClass {
const MY_CONST = 'string';
constructor(){
this.MY_CONST;
}
}
Ne yazık ki bu sınıflar sadece fonksiyonları olarak işe yaramaz. 5 ** kurucu anladığım kadarıyla ama ben istemiyorum 'önemsiz daha büyük bir sınıf için 20-30 parametreler var özellikle. benim yapıcı,
Birçok yönden bu konuyu ele düşünüyordum ama henüz bulamadım. Örneğin ClassConfig işleyicisi oluşturmak ve separatelly sınıfından ilan edilen parametre bir nesne geçmek, işleyicisi sınıfı eklemek istiyorsunuz. WeakMaps da bir şekilde entegre etmek için thinkon ediyordum.
Ne gibi Fikirler Bu durumun üstesinden gelmek zorunda mısın?
CEVAP
ES notları ES6 (maximally minimal classes) not: öneri için wiki
Var (kasten) ya da prototip tanımlamak için doğrudan bir bildirim veri yolu özellikleri (yöntemleri dışında) sınıf özellikleri, ya da örnek özelliği
Sınıf özellikleri ve prototip veri mal bildirimi dışında yaratılmış olması gerekir.
Özellikleri sınıf tanımında belirtilen bir nesne değişmez, göründü olarak aynı özelliklere atanır.
Bu anlamına gelirne istediğinin kabul edildi ve açıkça karşı karar verdi.
... neden? ama
Güzel soru. TC39 iyi insanları sınıf bildirimleri ve sınıf yeteneklerini ilan tanımlamak istiyorum. Üyeleri değil. ES6 sınıf bir bildirge kullanıcı sözleşmesini tanımlar.
Unutmayın, bir sınıf tanımı tanımlarprototipyöntemleri - prototip üzerinde belirleyici değişkenler genelde yaptığım bir şey değil. Tabi ki kullanım:
constructor(){
this.foo = bar
}
Senin gibi yapıcı önerdi. Ayrıca bakınız the summary of the consensus.
ES7 ve ötesinde
ES7 için yeni bir öneri sınıf bildirimleri ve ifadeler https://esdiscuss.org/topic/es7-property-initializers daha kısa örnek değişkenleri sağlayan üzerinde çalışılıyor
Alternatifleri java için.lang.yansıtır...
Örnek değişken Ruby sınıfa karşı sınıf...
Mockito herhangi bir sınıf değişkeni m...
Ekleme birden çok sınıf kullanarak ng-...
jQuery: bir öğe'aynı zamanda sını...