Mi a különbség a kettő között? (JavaScript)
class MyClassA {
myString = "foo";
}
class MyClassB {
constructor() {
this.myString = "foo";
}
}
Amennyire én tudom jsben a classokhoz mindig kell a constructor. Lenyegeben olyan mint a functionoknel a parameterek, amikor meghivod a classt, erteket adhatsz neki:
class myClass {
constructor(numA, numB) {
this.numA = numA,
this.numB = numB,
}
addNumbers() {
return this.numA + this.numB;
}
}
var class = new myClass(5,10)
console.log(class.addNumbers())
> Amennyire én tudom jsben a classokhoz mindig kell a constructor.
Nem, ez nem igaz. Ez teljesen valid kód:
class MyClassA {
myString = "foo";
}
const myClass = new MyClassA();
console.log(myClass.myString === "foo");
Mind a két esetben kap egy field-et (belső változója az osztálynak) az osztályod. Lényegi különbség nincs, talán annyi, hogy az első esetben az inicializálás hamarabb fut le, mint a második esetben. Ez talán segít egy picit megérteni: [link]
Én egyedül akkor látom értelmét az elsőt használni, ha tényleg valami nagyon alap dolgot kell inicializálni (konstanst, nyelvi elemet, vagy amikor egy statikus osztályban összegyűjtesz a kód szempontjából releváns meta információkat).
Valamint itt egy kód is, amiből látszik, hogy mi fog történni: [link] (nézd meg a konzolt miután lefuttattad)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!