Kurucuda dışardaki değişkenler arasında fark var mıdır?
İşlevler için 'bu' farklı bir şekilde bağlıdır, ancak değişkenler için, bir fark olup olmadığını anlayamıyorum. @ Merianos-nikos tarafından yorumlarındaES7 Sınıflar: Yapıcının Dışında Beyan Eden Özellikler
class Widget {
constructor(constructorName) {
this.constructorName = constructorName;
}
nonConstructorName = "nonConstructorName1";
}
var myWidget = new Widget("myConstructorName1");
console.log(myWidget.constructorName); // "myConstructorName1"
console.log(myWidget.nonConstructorName); // "nonConstructorName1"
myWidget.constructorName = "myConstructorName2";
myWidget.nonConstructorName = "nonConstructorName2";
console.log(myWidget.constructorName); // "myConstructorName2"
console.log(myWidget.nonConstructorName); // "nonConstructorName2"
console.log(myWidget.prototype.constructorName); // "undefined"
console.log(myWidget.prototype.nonConstructorName); // "undefined"
console.log(myWidget.__proto__.constructorName); // "undefined"
console.log(myWidget.__proto__.nonConstructorName); // "undefined"
var myNewWidget = new Widget("myConstructorName3");
console.log(myNewWidget.nonConstructorName); // "nonConstructorName1"
** Bu referans benim senaryo var mı? ** "(kasıtlı) (yöntemlerden hariç) prototip veri özelliklerini sınıf özelliklerini veya örnek özelliğine ya tanımlamak için doğrudan bildirime yolu yoktur." http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes –
Sınıf tanımının içinde tanımlayacağınız şekilde özelliklere sahip olup olmadığından emin değilim. Buna dayanarak: https://babeljs.io/docs/learn-es2015/#classes, 'constructor' yönteminin dışında bir özellik tanımının yanı sıra ES6 kodunuzu burada denerseniz: https: // babeljs. io/repl/ES6 transpeyerinin 'constructor 'yönteminin dışında özellik defnititionı için bir hata ürettiğini göreceksiniz. –
Eğer sınıf inşasının dışında bazı özel mülklere sahip olmak istiyorsanız, belki de şu soruyu okumak güzeldir: http://goo.gl/qzau3o, birkaç iyi cevabı vardır. –