Я хотел бы узнать, как получить доступ к переменной, которую я сохраняю в конструкторе Presents, из класса 2 Presents2.
Здесь у меня есть код:
<h1>Clases</h1>
<script>
class Presents {
constructor(fecha){
this.fechVelocity = fecha;
}
init(){
console.log("Inicializar");
console.log(this.fechVelocity);
return this.fechVelocity;
}
}
class Presents2 extends Presents {
constructor(fechVelocity){
super();
}
init2(){
console.log("Inicializar2");
console.log(this.fechVelocity);
}
}
let present = new Presents(20192111);
let present2 = new Presents2();
present.init();
present2.init2();
</script>
Я всегда получаю неопределенный, и я не знаю, как получить доступ, у вас есть идея =
В примере, что ты показываешь present
и present2
ser¦-an две различные инстанции , он не, что, создав present
и потом создав present2
ésta trabajarÃ: с которым уже ты создал aquà - let present = new Presents(20192111);
. Он не asà - как функционирует наследство.
Для того, чтобы present2
содержал информацию, у тебя есть, что:
let present2 = new Presents2(20192111);
super
в Presents2
мы Будем исправлять:
class Presents {
constructor(fecha){
this.fechVelocity = fecha;
}
init(){
console.log("Inicializar");
console.log(this.fechVelocity);
return this.fechVelocity;
}
}
class Presents2 extends Presents {
constructor(fechVelocity){
super(fechVelocity); //Esto es fundamental
}
init2(){
console.log("Inicializar2");
console.log(this.fechVelocity);
}
}
let present = new Presents(20192111);
let present2 = new Presents2(20192111); //Esta es una nueva instancia, debes pasar el dato al constructor
present.init();
present2.init2();
Относительно método init2()
, éste s¦lo tendr¦ - в чувство, если делало чего-то отличного , в которое делает в классе отец. Если это, чтобы делать то же самое, ты не должен объявлять снова один método сходно, а использовать тот отца.
Давайте Видеть пример, где объект типа Presents2
может использовать método init()
из Presents
:
class Presents {
constructor(fecha){
this.fechVelocity = fecha;
}
init(){
console.log("Inicializar... estamos en el padre");
console.log(this.fechVelocity);
return this.fechVelocity;
}
}
class Presents2 extends Presents {
constructor(fechVelocity){
super(fechVelocity); //Esto es fundamental
}
}
let present = new Presents(20192111);
let present2 = new Presents2(20200822); //Esta es una nueva instancia, debes pasar el dato al constructor
present.init();
present2.init(); //Este es el método init de Presents
Восток - один из фундаментальных аспектов наследство .
Если, как ты говоришь в твоем комментарии, хочешь избежать перемещать present2
снова дата, único, которую ты должен делать, состоит в том, чтобы создавать единственный объект типа Presents2
.
Например:
class Presents {
constructor(fecha){
this.fechVelocity = fecha;
}
init(){
console.log("Inicializar... estamos en el padre");
console.log(this.fechVelocity);
return this.fechVelocity;
}
}
class Presents2 extends Presents {
constructor(fechVelocity){
super(fechVelocity); //Esto es fundamental
}
}
let present2 = new Presents2(20192111);
present2.init(); //Este es el método init de Presents
В этот ответ у тебя есть пример mÃ: s я завершаю, что он объясняет c¦mo, функционирует наследство.
Покажи undefined
, из-за которых не estÃ: s перемещая parÃ: метры в класс отец. AcÃ: я присоединяю пример, где я считаю классом отца "VideoGame", который Ваш строитель получает 2 parÃ: метры: name
и publication
и у меня есть класс Fifa
, который является классом, который увеличивает класса отец, из-за чего он env¦ - в в строителя parÃ: метры самого класса Fifa
и ademÃ: s супер класса, которого в этом случае VideoGame
.
class VideoGame {
constructor(name = '',publication = '' ){
this.Name = name;
this.Publication = publication;
}
GetName(){
return this.Name
}
GetPublication(){
return this.Publication
}
}
class Fifa extends VideoGame {
constructor(name = '',publication = '', ){
super(name,publication);
}
GetFullNameVideoGame(){
return (`This is ${this.Name} ${this.Publication}`)
}
}
const objVideoGame = new VideoGame("MegaMan", "2000");
console.log(objVideoGame.Name)
console.log(objVideoGame.Publication)
const objVideoGameFifa = new Fifa("Fifa EA Sport", "2019");
console.log(objVideoGameFifa.Name)
console.log(objVideoGameFifa.Publication)
console.log(objVideoGameFifa.Name)
console.log(objVideoGameFifa.GetFullNameVideoGame())
presents2
? Если то, что ты хочешь, это, создай объект типаPresents2
и я заношу в список. Если ты создаешь инстанцию объекта и потом другая, эти объекты не являются взаимозаменяемыми. Даже, если ты создаешь два объекта, отличных от типаPresents
и не перемещаешь один дату, не podrá s соглашаться на эту информацию. Не sé если ты понимаешь меня. – A. Cedano 27.11.2019, 16:37init
изPresents
. Это один из фундаментальных аспектов наследство . Quizá confusió n он состоит в том, чтобы думать, что, когда ты получаешь в наследство, ты должен создавать инстанции как отца, так и сына ¿? Наследство позволяет сыну использовать все то, что отца , свойства, mé все, и т.д. – A. Cedano 27.11.2019, 16:43super()
Presents2
. Но когда ты будешь верить в инстанцию , ты должен перемещать его pará метры , если ты не перемещаешь его параметры инстанция класса, он создается без чего-либо, поэтому он давал тебе всегдаundefined
. – A. Cedano 27.11.2019, 16:45