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

Object.create


Jompan

Rekommendera Poster

Ä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."
 
Länk till kommentar
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.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...