Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.03.2015, 23:55
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

ссылка на свойство объекта, до его объявления
Здравствуйте, помогите решить задачку. Нужно передать ссылку на свойство объекта до его объявления...но сейчас получаю ошибку Uncaught TypeError: Cannot read property 'width' of undefined
ясно-понятно, что оно его не может найти, как выйти из положения...порядок выполнения важно соблюдать такой
test({
    width: cycle.width
});

window.cycle = {width:150};

function test(obj) {
    console.log(obj.width);  // тут нужно получить 150
}

Последний раз редактировалось Jekel, 01.04.2015 в 01:08.
Ответить с цитированием
  #2 (permalink)  
Старый 01.04.2015, 06:54
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Здравствуйте, помогите решить задачку. Я хочу поесть суп до того, как его приготовлю...но сейчас когда сую ложку в пустую кастрюлю я никак не могу наесться. Ясно-понятно, что в кастрюле нет супа, как выйти из положения...порядок выполнения важно соблюдать такой
Ответить с цитированием
  #3 (permalink)  
Старый 01.04.2015, 12:19
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

Немного не так...я хочу поесть супа, но сунуть ложку в кастрюлю не нужно, в том то и дело) захотел поесть супа, но я знаю где он будет после того, как приготовлю...запомнил, что он будет в кастрюле) приготовил....вспомнил, что я его хотел есть и где он лежит...поел
Ответить с цитированием
  #4 (permalink)  
Старый 01.04.2015, 13:40
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 31.03.2015
Сообщений: 113

Сообщение от Jekel
приготовил....вспомнил, что я его хотел есть и где он лежит...поел
Но как ты можешь быть уверен что он там УЖЕ лежит, Если ты не знаешь, когда он там должен появиться?

может как то так:
test({
    width: function(){if(window.cycle) return window.cycle.width}
});
 
window.cycle = {width:150};
 
function test(obj) {
    setTimeout(function(){if(obj.width()) return console.log(obj.width()) ; test(obj)}, 100)  // тут нужно получить 150
}

?
Ответить с цитированием
  #5 (permalink)  
Старый 01.04.2015, 14:31
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

как вариант) спасибо за пример
Ответить с цитированием
  #6 (permalink)  
Старый 02.04.2015, 09:58
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Передавать не ссылку а строку. с помощью try catch и eval получать значение:
myObj = {a:1,b:2}
function getVal(val) {
try {
	var ev = eval(value);
	return ev != void(0) ? ev : '';
}
catch(e) {
     return 'Error';
}
}
getVal('myObj.somevalue');// пустая строка
getVal('myObj.a');// 1
Ответить с цитированием
  #7 (permalink)  
Старый 02.04.2015, 15:55
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

это вариант, спасибо..но это очень медленный вариант, я думаю в моем случае решают события
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Понимание ООП в JavaScript kefi Общие вопросы Javascript 160 25.09.2012 21:30
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50
Статья о JavaScript Plest Оффтопик 17 12.11.2009 12:24
Любое свойство DOM-узла == его атрибут B~Vladi Internet Explorer 29 01.09.2009 16:09
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00