Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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

код не из примера, фрагмент большой, но он точно передает
ситуацию.
Всем заранее большое спасибо !
Ответить с цитированием
  #2 (permalink)  
Старый 05.12.2017, 16:15
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

По-моему никаких проблем
https://jsfiddle.net/r9cbx9fj/
Ответить с цитированием
  #3 (permalink)  
Старый 05.12.2017, 16:32
Новичок на форуме
Отправить личное сообщение для Konkery Посмотреть профиль Найти все сообщения от Konkery
 
Регистрация: 05.12.2017
Сообщений: 2

Вот и по моему не должно быть никаких проблем, значит проблема
с прошивкой которую адаптирует Амперка ((
Ответить с цитированием
  #4 (permalink)  
Старый 05.12.2017, 16:47
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Konkery,
Или вот в этом участке кода:
Сообщение от Konkery
/*

        здесь идет работа с  this.A_1, this.B_1

    */
- единственное отличие от кода Nexus,
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с видимостью переменной Alpunto Общие вопросы Javascript 2 23.09.2015 06:50
Проблема с видимостью перменной freelancer.rnd AJAX и COMET 16 16.08.2015 17:35
Проблема с видимостью $(this) chiffenok Общие вопросы Javascript 2 12.08.2013 16:21