bir de şunu okudum arştıma yaparken az önce w3schools dan diyor ki constructor hakkında :

"In a constructor function this does not have a value. It is a substitute for the new object. The value of this will become the new object when a new object is created."



daha sonra sizin verdiğiiz gibi şu kodu denedim :


function bike() {
var name = "Ninja";
this.maker = "Kawasaki";
console.log(name + " " + this.maker);

}


daha sonra


oba = new bike();



diyerek bike'ı constructor olarak kullandım
ve daha sonra aşağıdaki gibi bir kod yazdığımda


console.log(oba.maker); // Kawasaki



ve daha sonra yazdığım diğer kod ise

console.log(oba.name); // undefined



olarak çıktı aldım yani sanırsam ilk başta verdiğim kodda yani aşağıdaki gibi olan kodda

function bike() {
var name = "Ninja";
this.maker = "Kawasaki";
console.log(this.name + " " + maker); // undefined Bajaj
}

var name = "Pulsar";
var maker = "Bajaj";

obj = new bike();
console.log(obj.maker); // "Kawasaki"


burada constructor şeklinde kullandığımdan dolayı bike fonksiyonunun

console.log(this.name + " " + maker); // undefined Bajaj

yukarıdaki ifadesini aşağıdaki ifadeye çevirdi



console.log(obj.name + " " + maker);





ve de var name = "Ninja"; kısmını direkt aıp oba objesinin içine {maker: "Kawasaki"} yaptı

aşağıdaki resimde gözüktüğü gibi
resimag.com/p1/6a591c0c56.png