2013-08-10 4 views
0

1) Я заметил, что (по крайней мере, в Chrome) нет никакой разницы в выходе из этих двух:window.pageYOffset или просто страницаYOffset?/X + IEnumber + страницаYOffset/X поддержка?

pageYOffset; 
window.pageYOffset; 

они оба доступа к таким же глобальным, таким образом, возвращают то же самое - в чем разница между этими вызовами и тем, что лучше использовать?

Мое текущее подозрение: Я подозреваю, что реализацию Двойник для-переменных, моя идея состоит в том, что window.pageYOffset является прямым доступом к объекту окна для свойства pageYOffset тогда подножки только pageYOffset воли «медленно» смотреть к каждой области от глубины до вершины и окончательно находит ее в (супер) глобальном масштабе. Как вы думаете? Проводили ли какие-либо тесты?

2) Что такое IEnumber + поддерживает window.pageYOffset/или только страницуYOffset?
2) Ответ: MDN говорит, что IE < 9 оленья кожа поддерживать тех, так ответить на 2) является problably IE9 + (не удивительно)

                Источник: @Blender & https://developer.mozilla.org/en-US/docs/Web/API/window.scrollY

+1

Всегда проверяйте MDN: https://developer.mozilla.org/en-US/docs/Web/API/window.scrollY – Blender

+0

'window.foo' и' foo' ссылаются на один и тот же глобальный. Я склонен быть явным и использую 'window.foo'. – Blender

+1

'window' - глобальный объект, и все его глобальные свойства: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Global_variables – Blender

ответ

1

Использование префикса window. происходит быстрее, поскольку, как вы упомянули, поиск не производится. Также он не испортится, если вы определите локальную переменную, называемую «pageYOffset», потому что она все равно будет смотреть на window.pageYOffset.

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

EDIT: Разница заключается в поиске, очевидно.