[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Наследование Javascript
denis_alekss
Не выводится b.name.

<!DOCTYPE html>
<html>
<head>
<meta
charset="utf-8">
</head>
<body>
<script>

let Person = function Pers(name, age, gender) { // Имя будет Pers
this.name = name;
this.age = age;
this.gender = gender;
};
Person.prototype.greet = function () {
console.log("My name is " + this.name);
}

let Person2 = Person;
Person2.prototype.goodbye = function () {
console.log("Goodbye, " + this.name);
}

let Son = function (age, name, gender,skils) { // Имя будет Son
// Родительский конструктор вызывается до дочернего конструктора,
// чтобы не было перезаписывания новых полей.

Person.call(this, name, age, gender);
this.skils = skils || [];
}

let Sunny = Son;
Sunny.prototype = Object.create(Person.prototype);
Sunny.prototype.constructor = Sunny; // Имя будет Son

let a = new Person("Петя", 25, "female");
console.log(a);
console.log(a.constructor.name);

let b = new Son(18,["рисует", "поет", "водит"]);
console.log(b);
console.log(b.name);
</script>
</body>
</html>



Задался еще таким вопросом. Я передал аргументы конструктору Person создав объект а,

let a = new Person("Петя", 25, "female");


а как получить эти значения объекту b и вывести?

Если написать так: console.log(b.name); получим undefined при выводе, а мне к примеру нужно унаследовать от родителя эти значения name, age, gender и вывести через потомка.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.