[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: область видимости
Slays
Что-то соображалка уже не соображает.


вот имею я вложенные функции

function a(){

var paramA;

function b(){

var param B;

function c(){

var param C;

}

}

// Как тут в одном месте собрать все эти переменные ???
var resultA = paramA;
var resultB = paramB;
var resultC = paramC;

}


Что можно сделать, не прибегая к глобальным переменным и return, можно ли создать локальные переменные, которые будут глобальными внутри функции ? Чтобы paramC была видна в функции A, но не видна через window.

user posted image



Спустя 2 часа, 59 минут, 48 секунд (21.09.2010 - 02:29) aH6y написал(а):
помойму можно сделать только глобальной переменной.
я js недавно осилил, но на этом очень неплохо стопорил...

Спустя 8 часов, 26 минут, 22 секунды (21.09.2010 - 10:55) vasa_c написал(а):
Очевидно: определить её в функции a().

Спустя 2 часа, 47 минут, 8 секунд (21.09.2010 - 13:42) Slays написал(а):
function a(){

var paramA;
var paramB;
var paramC;

function b(){

var paramD = paramB;

function c(){

var paramE = paramC;

}

}
var resultA = paramA;
var resultD = paramD;
var resultE = paramE;

}


также ничего не даст, понятно что вложенные функции видят параметры родителей. Но родитель то их параметров не видит по прежнему. А мне надо именно в родительскую функцию достать то, что получилось в дочерних, но видимо нельзя.

Спустя 1 час, 6 минут, 39 секунд (21.09.2010 - 14:49) aH6y написал(а):
используйте глобальные переменные и всё будет работать smile.gif

Спустя 41 минута, 53 секунды (21.09.2010 - 15:31) vasa_c написал(а):
Родители не должны видеть параметры (какие параметры? - переменные) контекстов вложенных функций.
Вложенные видят родительский контекст - так его и используйте.

function a() {
var one;
function b() {
one = 1;
}
b();
alert(one); // 1
}

Спустя 51 минута, 46 секунд (21.09.2010 - 16:22) Slays написал(а):
да, в итоге как-то так и сделал =) пример конечно же утрирован, на деле все намного сложнее, в итоге всю конструкцию переписывал )


_____________
если помог, не скупись на карму =)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.