Метод автозапуска JavaScript при создании mimic init? - PullRequest
0 голосов
/ 01 ноября 2018

Я изучаю свой путь через ООП в JavaScript и натолкнулся на загадку: когда я создаю экземпляр класса, я хочу, чтобы он мог запускать набор внутренних функций.

Из того, что я могу сказать, это похоже на идею функции init во многих других языках.

Простой пример:

function human(name, age){

this.name = name;
this.age = age;

this.init = function(){
    console.log("hi my name is "+this.name+" and I am "+this.age+" years old.");
}//end of this.init

}//end of class human

var fred = new Human("fred", 30);
fred.init();

Я хочу, чтобы fred.init запускался автоматически без необходимости явного вызова. Я понимаю, что это событие, поэтому я подумал о EventListener что-то вроде:

this.addEventListener("initialization", this.init);

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

Если бы кто-то мог просто указать мне правильное направление (если бы не полное решение), я был бы очень признателен.

спасибо

Zen

p.s. ссылка на пользовательский справочник мероприятий для чайников тоже подойдет

1 Ответ

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

ОК, так что я немного тупица, если у кого-то еще есть эта проблема, решение очень простое:

function human(name, age){

  this.name = name;
  this.age = age;

  this.init = function(){
    console.log("hi my name is "+this.name+" and I am "+this.age+" years old.");
  }//end of this.init

  this.init();

}//end of class human
var fred = new Human("fred", 30);

Все, что вам нужно сделать, - это вызвать метод внутри определения класса с использованием идентификатора "this"

...