Как я могу получить доступ к объекту конструктора JavaScript в качестве параметра функции IFFI? - PullRequest
1 голос
/ 01 мая 2020

Метод 1: (Successful) У меня есть конструктор объекта с именем Person, внутри этого конструктора объекта я использовал выражение функции IFFI, которое работает правильно. Внутри этой функции свойство Person доступно! Но,

var Person = function (age) {
  this.age = age;
  this.retiredIn = (function (obj) {
    return 65 - obj.age;
  })(this);
};

var turna = new Person(22);

console.log(turna);
enter image description here

Метод 2: (I want this, Unsuccessful) Вот еще одно, что я хочу сделать, я хочу вставить функцию retiredIn из прототипа, например это, в данном случае this упоминание объекта window. Как я могу получить доступ к Person объекту оттуда? Я пытался передать объект непосредственно на IFFI, но он не работает.

var Person = function (age) {
  this.age = age;
};

Person.prototype.retiredIn = (function () {
  return 65 - this.age; //how can i access Person Object here
})();
var turna = new Person(22);

console.log(turna);
enter image description here

Метод 2.1: (I have tried Like This) Я лично прошел подрядчика, но он не работает!

var Person = function (age) {
  this.age = age;
};

Person.prototype.retiredIn = (function (obj) {
  return 65 - obj.age; //this is also showing NaN
})(Person);
var turna = new Person(22);

console.log(turna);

Это также возвращает NaN. Есть ли способ сделать эту операцию, как метод 2?

1 Ответ

3 голосов
/ 01 мая 2020

Вы можете сделать метод getter вместо:

var Person = function (age) {
  this.age = age;
};
Object.defineProperty(Person.prototype, 'retiredIn', {
  enumerable: true,
  get() {
    return 65 - this.age;
  }
});
var turna = new Person(22);

console.log(turna);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...