Показать сообщение отдельно
  #3 (permalink)  
Старый 15.01.2021, 21:48
Аспирант
Отправить личное сообщение для denis_alekss Посмотреть профиль Найти все сообщения от denis_alekss
 
Регистрация: 01.12.2020
Сообщений: 55

Разницы нет что с return this (я так понимаю это ссылка на объект класса)
Если убрать return this, без него также работает код, причем одинаково.

Почему во втором console.log не происходит вывод 18? Ведь я передал через конструктор аргумент 18.
Здесь решил попробовать наследование.

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Тест</title>
 </head>
 <body>  
<p id="result"></p>

    <script>
let Person =function(name,age,gender){
        this.name = name;
        this.age = age;
        this.gender = gender;
    //    return this;
    };
Person.prototype.greet= function(){
       console.log("My name is " + this.name);
    };



let Son = function(age,skils){
this.skils = skils || [];
Person.apply(this,arguments)
}


Son.prototype = Object.create(Person.prototype);
Son.prototype.constructor = Son;
let a = new Person("Петя",25,"female");
let b = new Son(18,["рисует","поет","водит"]);
console.log(a.age);
console.log(b.age + b.skils);
 </script>
 </body>
</html>

Последний раз редактировалось denis_alekss, 15.01.2021 в 23:32.
Ответить с цитированием