Just nu i M3-nätverket
Gå till innehåll
Jompan

Object.create

Rekommendera Poster

Jompan

Är det någon som ser vad jag har gjort för fel här:

Jag ska skapa en kopia via Object.create med nya värden, där min kopia bara tar in en del av de nya värdena.

 

Person nr 1 (Isac)

var person1 = {
firstName : "Isac", 
lastName : "Newton", 
nationality : "England",
};

person1.fysiker = function() {
return "My name is " + this.firstName + " " + this.lastName + " from " + this.nationality + ".";
}

person1.born = new Date("1643-01-04");

person1.print3 = function() {
var year = this.born.getFullYear();
return person1.fysiker() + " I was born " + year + "."; 
};

document.write = person1.print3();
Person nr 2 (Henri)
var person2 = Object.create(person1, { 
      firstName: { value: "Henri" },
      lastName: { value: "Becquerel" },
      nationality: { value: "France" },
      born: { value: new Date("1852-12-15") },
}
);

document.write = person2.print3();

Svaret blir nämligen detta:
"My name is Isac Newton from England. I was born 1852."
 
I stället för:
"My name is Henri Becquerel from France. I was born 1852."
 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
ChromaWoods

I person1.print3 så returnerar du från person1.fysiker(). Därför kommer alltid fysiker1 att printas. Använd this.fysiker() istället så kommer det nog att funka.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Jompan

Javisst! Det funkade fint.

Tack för hjälpen!

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...