Tpona
@Tpona
Ужасный перфекционист

[решено] Как реализовать вызов функции из конструктора объекта на прототипах (она еще не записана в прототип)?

Доброго дня, коллеги!

Есть объект (класс) на (прототипный вариант) он имеет несколько функций.
Допустим такой:

function ElementBase(options) {
    ControlBase.apply(this, arguments);
};

ElementBase.prototype = Object.create(ControlBase.prototype);
ElementBase.prototype.constructor = ElementBase;

// Функции

function WidgetChart(options) {
    ElementBase.apply(this, arguments);

    this.title          = '';
    if (options.title)
        this.setTitle(options.title);
}

WidgetChart.prototype = Object.create(ElementBase.prototype);
WidgetChart.prototype.constructor = WidgetChart;

WidgetChart.prototype.setTitle = function(title, updateProp) {
	// тут не просто присвоение в переменную, 
	// могут быть другие операции, фнкция для примера
};


setTitle для примера, тут может быть сложный код, и функция может вызываться из разных мест, в т.ч. извне класса.
Такой вариант выдавал ошибку: Uncaught TypeError: Cannot read property 'setTitle' of undefined

PS: проблемы не было тут, в функции setTitle у меня есть вызов setTitle другого объекта, который был еще не создан.
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
risentveber
@risentveber
fullstack web developer
Что значит она еще не записана в прототип - вы собираетесь создавать объект до присвоения соответсвующей функции в прототипе?
При нормальном использовании конструктора все работает:
debda6d36daa429fa6698850f1780aaf.png
Не работает только если вызывать его как обынчную функцию
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы