Страница 1 из 1

Доступ к элементам объекта

Добавлено: 19 мар 2015, 03:17
Oleg_Rus

Код: Выделить всё

var item = {
	result: [[1,2,3],[4,5,6],[7,8,9]],
	swap: {
		transposing: function () {
			function transposing_small($a, $b) {
				arr = parent.this.result;
				alert(arr);
			}
			transposing_small(0, 0);
		}
	}
}
1. Код говорит, что переменная arr не определена - undefined
2. если вызывать ф-ию transposing_small(this.result, 0, 0) - arr = undefined

В чем ошибка? Как я могу получить доступ к массиву result из ф-ии transposing_small?
Как получить доступ к родительскому объекту?

Re: Доступ к элементам объекта

Добавлено: 19 мар 2015, 09:00
somewhere
На момент вызова transposing_small вызов this вернет объект, который присвоен swap. То есть внутри объекта только функция.
А вот до item вообще не достучаться, поскольку swap содержит ссылку на уникальный экземпляр класса.
Это все равно что запись в дельфи:

Код: Выделить всё

SomeClass class
someField1 : integer;
someField2 : TSomeClass;
....
function TSomeClass.GetParentValue()
begin

end;
Очевидно, что из GetParentValue не достучаться до someField1, поскольку класс не наследуется, а просто существует в виде экземпляра в памяти, на который указана ссылка в каком то другом объекте/классе