Использование функций в конструкторе

170
26 августа 2018, 17:50

Есть конструктор:

function Example(variable) {
        this.name = variable;
        this.test = function() {
            return 'вперед';
        }
    }
    let foo = new Example('Вася');

Почему свойству test не присваевается значение вперед?

Answer 1

Капитан Очевидность глаголит: потому что свойству test присваивается не вперёд, а функция.

Если нужно возвратить из функции значение и уже его присвоить, то нужно так:

function Example(variable) { 
  this.name = variable; 
  this.test = function() { 
    return 'вперед'; 
  }(); // Используем самовызывающиеся функции и присвоим уже результат 
       // Правда зачем функция, если конструктор и сам функция? Вычисляйте в нём что надо и присваивайте только когда будет надо 
} 
 
let foo = new Example('Вася');

Answer 2

function Example(variable) { 
  this.name = variable; 
  this.test = function() { 
    return 'Вперед, ' + variable + '!'; 
  }() 
} 
 
let foo = new Example('Вася'); 
console.log(foo);

READ ALSO
Как парсить данные страницы, если они генерируются на клиенте?

Как парсить данные страницы, если они генерируются на клиенте?

Всем привет, в общем нужно мне спарсить данные о количестве билетов с сайта rzdЯ попробовал через их api, но ничего не работает, поэтом решил...

213
Webview и работа с ним

Webview и работа с ним

Я тут глупенькийУ меня есть webview, которая открывает html файл

169
Multi-highlight

Multi-highlight

Доброе время суток! Скажите пожалуйста на сколько реально вытащить из приложения js файл и переделать под свой лад ? https://chromegoogle

186
WebView и display:grid

WebView и display:grid

Отображение контейнера в браузере на ПК и на андроиде очень сильно разится

152