Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2021, 00:13   #1
denis_alekss
Пользователь
 
Регистрация: 01.12.2020
Сообщений: 25
По умолчанию Наследование Javascript

Не выводится 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 и вывести через потомка.
denis_alekss вне форума Ответить с цитированием
Старый 18.01.2021, 23:48   #2
denis_alekss
Пользователь
 
Регистрация: 01.12.2020
Сообщений: 25
По умолчанию

Придумал как сделать.
Код:
<!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 (name,age,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(a.name,a.age,a.gender, ["рисует", "поет", "водит"]);
		
        console.log(b);
		console.log(b.name);
    </script>
</body>
</html>
Просто засунул объект а созданный от Person в сына в качестве аргументов.

Код:
        let b = new Son(a.name,a.age,a.gender, ["рисует", "поет", "водит"]);
Я просто хотел понять как наследовать потомку свойства и значения полученные конструктором родителя, добавляя в потомке еще свои свойства, расширяя класс родителя.
denis_alekss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[JavaScript] Обработать событие, добавить в JavaScript* Pet-marusya Фриланс 3 31.01.2019 14:23
Подскажите, как правильно выполнить задачу. JavaScript. HTML. CSS - JavaScript Bob123 JavaScript, Ajax 0 20.01.2018 22:07
Javascript. Наследование метода, изменение SQLPowerUser JavaScript, Ajax 2 25.04.2017 09:47
Javascript - классы, они есть или их нету в Javascript? Kasper1 JavaScript, Ajax 3 05.03.2011 09:42