Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.12.2014, 15:56
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

Альтернативные способы изменения контекста
Знаю что можно вызвать функцию с нужным контекстом использую bind, но сейчас интересует альтернативный способ.

столкнулся с такой ситуацией, когда абсолютно ко всем элементам нужно обратиться не через this, а через this.parent.

Ну, думая что самый умный, я и написал

this = this.parent


да только не прокатило >< есть ли какой-то иной способ такой записи?
(без вызова функции с bind, т.е. работаем уже внутри функции)
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2014, 16:02
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var obj = {
   a: {
      b: function() {
          
      }
   }
}

obj.a.b.call(obj);
Ответить с цитированием
  #3 (permalink)  
Старый 08.12.2014, 16:10
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

ну не совсем то что имел ввиду, но все равно спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 08.12.2014, 16:17
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Siend
столкнулся с такой ситуацией, когда абсолютно ко всем элементам нужно обратиться не через this, а через this.parent.
Имхо я бы нашел нормальный редактор с оптовой заменой контекста, который бы заменил оптом и сразу this на this.parent , либо Вы задачу объясняете для экстрасенсорного восприятия.
Чем запутаннее поставлен вопрос и без примеров хотя бы кусков собственной реализации, тем и меньше желающих помочь и дольше время возврата в итоге к истокам проблемы, которое будет необходимо и без помощи, при решении собственными силами...(О как закрутил...
Ответить с цитированием
  #5 (permalink)  
Старый 08.12.2014, 16:33
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

Ну вообще вот такая лажа случилась. грубо говоря:

var a = new testA()

//где-то в testA
this.b = new testB()

//где-то в testB
this.parrent = a


------------------------
Далее, в testA есть функция, которая вызывается из testB

где-то в testA
this.b.SetFunction(this.testAfunction )
testAfunction : function() {.../*Вот тут мне нужен в качестве this объект a*/...}


где-то в testB
SetFunction: function (func){
        this.TEST = func
    }
testBfunction : funtion(){
this.TEST() //Вот тут this - это объект b и когда вызывается функция, у нее this тоже от объекта b. 
}


Для решения этой проблемы я и сделал b.parrent = a
И когда я вызываю testAfunction() ---> this.parrent в ней действительно ссылается на a, НО!!! я не могу обратиться к методам a. т.е. допустим к какой-нибудь функции объекта a:

где-то в testA
SuperFunction: function() {alert("yes")}

testAfunction : function() {
this.parrent.SuperFunction() //ошибка
}
Ответить с цитированием
  #6 (permalink)  
Старый 08.12.2014, 16:38
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

ВРУ. Этот момент работает, кажется ошибка в чем-то другом(
Ответить с цитированием
  #7 (permalink)  
Старый 08.12.2014, 16:49
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Siend Посмотреть сообщение
НО!!! я не могу обратиться к методам a. т.е.
}[/JS]
http://javascript.ru/tutorial/object...steyshiy-vyzov
http://learn.javascript.ru/prototype...о-f-prototype
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить изменения скрипта kosty@ jQuery 5 09.01.2014 19:56
Отлов изменения размера элемента. Какие способы есть? danik.js Events/DOM/Window 3 05.02.2013 11:00
Как с помощью PHP сохранить какие-либо изменения в HTML документе? FirstFrost Работа 6 06.09.2010 16:16
Как с помощью PHP сохранить какие-либо изменения в HTML документе? FirstFrost Общие вопросы Javascript 1 15.07.2010 17:12