Методы-прототипы объекта возвращают только определения функций, но не выполняются. - PullRequest
0 голосов
/ 28 ноября 2018

Я рассматривал прототипный способ создания и "создания экземпляров" объектов и столкнулся с проблемой.Когда я помещал этот код в консоль браузера, чтобы проверить его, если я введу:

nUser1.myAge()  // only the function definition is returned, doesn't actually execute.

, я подумал, что, возможно, мне нужно иметь инструкцию return для метода, но это не имело никакого значения.Кроме того, в моих предыдущих (успешных) попытках практики им не требовалось выражение return для возврата результатов соответствующих методов.

Я просматривал код несколько раз и сравнивал его с другими моими примерами иничего не выделяетсяЯ чувствую, что проблема прямо под моим носом, но я этого не вижу.

function normUserCreator(name, age, employed) {
  this.name = name;
  this.age = age;
  this.employed = employed;
};

normUserCreator.prototype.myName = function() {
  console.log("My name is: " + this.name + ".")
};
normUserCreator.prototype.myAge = function() {
  console.log("My age is : " + this.myAge + ".")
};
normUserCreator.prototype.employed = function() {
  if (this.employed === true) {
    console.log("I am employed");
  } else if (this.employed === false) {
    console.log("I am not employed");
  }
};

var nUser1 = new normUserCreator('Kevin', 26, false);

1 Ответ

0 голосов
/ 28 ноября 2018

Ошибка в этой строке

console.log("My age is : " + this.myAge + ".")

Он в основном вызывает себя. Замените его на this.age

Также вы можете заменить if (this.employed === true) на if (this.employed) то же самое для else if состояние

function normUserCreator(name, age, employed) {
  this.name = name;
  this.age = age;
  this.employed = employed;
};

normUserCreator.prototype.myName = function() {
  console.log("My name is: " + this.name + ".")
};
normUserCreator.prototype.myAge = function() {
  console.log("My age is : " + this.age + ".")
};
normUserCreator.prototype.employed = function() {
  if (this.employed) {
    console.log("I am employed");
  } else if (!this.employed) {
    console.log("I am not employed");
  }
};

var nUser1 = new normUserCreator('Kevin', 26, false);
nUser1.myAge()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...