Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.03.2013, 17:40
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

Обратиться к свойству или методу parent из child
подскажите плиз, что надо сделать чтобы заработал этот код?
functin Parent() {
  this.child = new Child();
  this.data = 10;
};
function Child() {
  this.method = function () {
     alert(Parent.data) // получить доступ к свойству data родителя
};
Ответить с цитированием
  #2 (permalink)  
Старый 01.03.2013, 20:00
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

Методом тыка родил вот такой код, вобщем сделал через замыкание, оцените профи сгодится ли такая конструкция?
function Parent () {
  this.child = {
    self : this,
    name : 'child',
    fnChild : function () {
      this.self.fnParent.call(this);
    }
  };
  this.name = 'parent';
  this.fnParent = function () {
    alert(this.name); 
  };
}
Ответить с цитированием
  #3 (permalink)  
Старый 01.03.2013, 20:46
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 330

Поясните что вы понимаете под parent и child Если parent - базовый класс, а child - производный (выражаясь терминами С++) то у одного parent может быть много разных child, да и ничего parent про child знать не обязан.
Ответить с цитированием
  #4 (permalink)  
Старый 01.03.2013, 21:16
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

мне нужно из метода объекта, который определяется как свойство другого объекта, добраться до метода или свойства этого самого объекта. Я не силен в терминах, просто решил объяснить на примере дом, где один объект вложенный вдругой является его потомком.
Ответить с цитированием
  #5 (permalink)  
Старый 01.03.2013, 21:33
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 330

function Parent() {
  this.child = new Child();
  this.child.parent = this; // добавлено вот это
  this.data = 10;
}

function Child() {
  this.method = function () {
     alert(this.parent.data) // получить доступ к свойству data родителя
  }
}

var test = new Parent();
test.child.method();

// но!!!
var falseParent = {};
falseParent.data = 25;
falseParent.child = test.child;

falseParent.child.method(); // все равно 10

Последний раз редактировалось rgl, 01.03.2013 в 21:39.
Ответить с цитированием
  #6 (permalink)  
Старый 01.03.2013, 22:04
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

круть...спасибо друг.
Ответить с цитированием
  #7 (permalink)  
Старый 01.03.2013, 22:10
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

по сути это почти как у меня, только без замыкания?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к свойству CSS через JS? Дмитрий 87 Events/DOM/Window 4 14.12.2012 14:56
Как обратиться к свойству объекта по имени если оно хранится в переменной xaknik Общие вопросы Javascript 2 25.04.2012 22:12
Передача данных из parent в child окно ZLoD3Y Javascript под браузер 2 10.11.2011 13:11