Я пробовал искать это около часа и не могу найти решение, которое работает на меня. У меня есть функция (Function2) внутри объекта, вызываемого интервалом. Функция2 не может найти Function1 и говорит, что метод не существует. Почему это может быть, или что не так с моим синтаксисом?У объекта нет метода?
var ClassA = function()
{
this.attribute = "";
this.function1 = function()
{
alert("Function 1");
};
this.function2 = function()
{
alert("Function 2");
this.function1(); <----- Does not exist?
};
this.function3 = function()
{
setInterval(this.function2, 5000);
};
};
var CLASS_A = new ClassA();
CLASS_A.function3();
'' 'это поздняя регистрация в JS. Захватите его значение для использования внутри функций. –
Другими словами: поместите 'var that = this;' в вершину ClassA и замените все 'this' на' that'. – Jonathan
Это известный шаблон JS ... используйте 'var self = this;' в верхней части вашего класса, а затем обратитесь к внутренним функциям, используя 'self.functionName'. Когда вы находитесь внутри функции2,« это »относится к функции2 scope, а не класс. –