почему я ничего не возвращаю из своей функции-конструктора? - PullRequest
0 голосов
/ 07 августа 2020
function Person (name, eyeColor, age) {

this.name = name;
this.eyeColor = eyeColor;
this.age = age;
this.updateAge = function ()  {

return ++this.age;


};

}  


let person1 = new Person("kevin", "blue", 34); // normalli would have to return something but as im 
creating a new object 
let person2 = new Person("tom", "brown", 64);


console.log(person1);

Обычно, если я хочу, чтобы person1 равнялось чему-то изнутри функции, мне приходилось что-то ей возвращать. Почему мне не нужно этого делать при создании нового конструктора объекта. если я console.log person 1, он возвращает мне человека 1. В то время как, если бы я обычно вызывал функцию, мне нужно было бы что-то вернуть мне, чтобы это было значением присваивания переменной. Также почему мы возвращаемся из метода? Но мы не возвращаемся изнутри функции-конструктора

всем спасибо

1 Ответ

1 голос
/ 07 августа 2020

См. Документ ниже https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new

Новое ключевое слово выполняет следующие функции:

  • Создает пустой, простой JavaScript объект;
  • Связывает (устанавливает конструктор) этот объект с другим объектом;
  • Передает вновь созданный объект из шага 1 как контекст this;
  • Возвращает это, если функция не ' t вернуть объект.
...