Показать сообщение отдельно
  #1 (permalink)  
Старый 05.12.2017, 16:10
Новичок на форуме
Отправить личное сообщение для Konkery Посмотреть профиль Найти все сообщения от Konkery
 
Регистрация: 05.12.2017
Сообщений: 2

Проблема с видимостью функций в переданном объекте
Доброго времени суток!
Неожиданно столкнулся с проблемой которую пока никак не удалось
преодолеть. Суть Есть Объект_1 и Объект_2, первый передается второму
как параметр при создании. Объекты создаются через new, затем
происходит вызов внутренней функции Объект_2, которая внутри себя
вызывает функцию Объект_1, вот ее то исп. среда и не видит.
Перепробовал все известные мне варианты, игрался с this, call, bind
ничего не помогает, исп. среда упорно говорит что ф-я ей не известна,
код ниже. Пишу под IoT систему Espruino.
function class_1()
{
this.A_1;
this.B_1;
}

class_1.prototype.func_class_1 = function()
{
	/*
		здесь идет работа с  this.A_1, this.B_1
	*/
}

function class_2 (_obj /*object of type class_1*/)
{
this.A_2;
this.B_2;
this.Obj_2 = _obj;
}

class_2.prototype.func_class_2  = function()
{
	//вот здесь и происходит проблема с вызовом "func_class_1()"
	this.Obj_2.func_class_1();
}

var o1 = new class_1();
var o2 = new class_2(o1);

o2.func_class_2(); //сообщение исп. среды>>> Uncaught Error: Field or method "func_class_1()" does not already exist, and can't create it on undefined

код не из примера, фрагмент большой, но он точно передает
ситуацию.
Всем заранее большое спасибо !
Ответить с цитированием