2016-08-10 3 views
0

Глядя ниже фрагмента кодаНе понимая яваскрипт window.frames.Array

var _Array = window.frames[window.frames.length-1].Array; 

Я действительно не понимаю, что это значит. Я понимаю, что Array находится в javascript. Но что делает этот код? Я получаю часть window.frames []. Что делает добавление .Array в конце?

Пожалуйста, дайте мне знать. Спасибо.

+0

Я извиняюсь ?? Не могли бы вы рассказать? Пожалуйста, забудьте часть назначения этого правильного выражения переменной _Array – user3502374

+0

, где вы видели этот код? 'window.frames' возвращает псевдо-массив' FrameList', но на этом объекте нет такого свойства «Array», насколько я знаю. –

+2

Возможно, этот код пытается получить объект «Array» из последнего кадра в списке кадров в текущем окне? –

ответ

2

Что-то вроде этого может стать более ясным, если мы сломаем его немного.

// Get the global window object for the last frame on the page. 
var iframeWindow = window.frames[window.frames.length-1]; 

// Get the Array constructor for the iframe window.  
var _Array = iframeWindow.Array; 

window.frames представляет собой массив-подобный объект, который содержит все кадры в окне. Если у вас есть ссылка на один из них, вы можете получить доступ к глобальным переменным фреймов в качестве свойств этого объекта, так же, как вы можете получить доступ к глобальным переменным для текущего окна через объект window. В этом случае обращаются к глобальному конструктору Array.

Эквивалентный код для получения Array конструктора для текущего окна будет:

var _Array = window.Array; 
+0

Только один вопрос. Выполнение var newArray = new _Array (1,2,3), _Array - это по существу что-то (в этом случае iframeWindow) .Array. Все в порядке. Поэтому, когда вы делаете var foo = new Array (1,2,3) .. в этом случае, я могу думать об этом как .. (что-то) .Array ..? но тогда что-то в этом случае? Окно? (извините, если этот вопрос кажется действительно глупым.Я прекрасно знаю, как построить массив, но этот вопрос действительно бросил все мое понимание объекта и массива в javascript в gutter .. – user3502374

+0

@ user3502374 '(something)' будет 'window'.' window.Array' - это то же самое, что и глобальное 'Array'. –

+0

спасибо всем. Ответ принят. Очистите сейчас! – user3502374