Как использовать функцию, которая была создана внутри конструктора? - PullRequest
1 голос
/ 10 апреля 2020

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

Мой TypeScript

  private functionActive;

  constructor(){

    this.functionActive = function hello(){

      console.log('Hello world');

    };

    }   

  }

  buttonActive(event){

    this.functionActive.hello();

  }

Ответы [ 3 ]

3 голосов
/ 10 апреля 2020

Две ошибки:

  1. Определить функцию без дополнительных )

    constructor() {
       this.functionActive = function hello() {
          console.log("Hello world");
       };
    }
    
  2. Вызвать ее, используя ссылку на функцию то есть functionActive, а не hello, поскольку это выражение функции:

    buttonActive(event) {
       this.functionActive();
    }
    
1 голос
/ 10 апреля 2020

Если я правильно понял вашу проблему, вот способ ее решения:

private functionActive={};

  constructor(){

    this.functionActive["hello"] = function (){
      console.log('Hello world');
    }
    }   

  buttonActive(event){
    this.functionActive.hello();

  } 

Вот рабочая демонстрация: demo

0 голосов
/ 10 апреля 2020
class A {
  private functionActive;
  constructor(option) {
    if (option.enable)
      this.functionActive = function () {
        console.log("Hello world");
      };
  }
  buttonActive(event) {
    if (typeof this.functionActive === "function") this.functionActive();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...