Я хочу очистить свой код и удалить window.
там, где он не нужен.
Каковы правила , чтобы сделать это?
Я спрашиваю, еслиглобальный вызов должен иметь window.
или нет - или глобальный объект - но я не спрашиваю о пользовательских переменных, как в этот вопрос у которых нет ответов, которые я хочу ...
Я не хочу предложений о том, как мне организовать свои переменные и вызовы (как в принятом ответе).Я уже знаю свои переменные - так что ни второй ответ не подходит.Третий ответ может быть преобразован в некоторые правила, которые я запрашиваю:
- Пример
if (window.myVar) {//do work }
работает, если существует myVar
, но ошибка, если window.
отсутствует! - Пример
if (window.myVar) {//do work }
может быть более точным, как, например, if (typeof myVar === 'array') {//do work }
, или использовать 'string', 'function' ... - Пример
var myVar = 'test'
и window.myVar = 'test'
примерно эквивалентны ... oups user defined variable
здесь:( не беспокойся :) если это имеет большое значение, то скажи этоПопробуйте найти ссылку и ссылки, MDN, w3c, ...
Вместе мы можем составить список правил, спросив, можем ли мы безопасно удалить window.
из примера addEventlistener()
или event.clientX
.
Я не думаю, что кто-нибудь напишет, например, window.document.getElementById()
.Иногда полезно упомянуть window.
, если читатель может подумать, например, что history.back()
определяется пользователем.
Рассмотрим следующие глобальные переменные:
for (var x in window) console.log(x)
Вот вывод изконсоль в Chrome:
blur focus close frames self window parent opener top length closed
location document origin name history locationbar menubar personalbar
scrollbars statusbar toolbar status frameElement navigator applicationCache
customElements external screen innerWidth innerHeight scrollX pageXOffset
scrollY pageYOffset screenX screenY outerWidth outerHeight devicePixelRatio
clientInformation screenLeft screenTop defaultStatus defaultstatus
styleMedia onanimationend onanimationiteration onanimationstart onsearch
ontransitionend onwebkitanimationend onwebkitanimationiteration
onwebkitanimationstart onwebkittransitionend isSecureContext onabort
onblur oncancel oncanplay oncanplaythrough onchange onclick onclose
oncontextmenu oncuechange ondblclick ondrag ondragend ondragenter
ondragleave ondragover ondragstart ondrop ondurationchange onemptied
onended onerror onfocus oninput oninvalid onkeydown onkeypress onkeyup
onload onloadeddata onloadedmetadata onloadstart onmousedown onmouseenter
onmouseleave onmousemove onmouseout onmouseover onmouseup onmousewheel
onpause onplay onplaying onprogress onratechange onreset onresize onscroll
onseeked onseeking onselect onstalled onsubmit onsuspend ontimeupdate
ontoggle onvolumechange onwaiting onwheel onauxclick ongotpointercapture
onlostpointercapture onpointerdown onpointermove onpointerup onpointercancel
onpointerover onpointerout onpointerenter onpointerleave onafterprint
onbeforeprint onbeforeunload onhashchange onlanguagechange onmessage
onmessageerror onoffline ononline onpagehide onpageshow onpopstate
onrejectionhandled onstorage onunhandledrejection onunload performance stop
open alert confirm prompt print requestAnimationFrame cancelAnimationFrame
requestIdleCallback cancelIdleCallback captureEvents releaseEvents
getComputedStyle matchMedia moveTo moveBy resizeTo resizeBy getSelection
find webkitRequestAnimationFrame webkitCancelAnimationFrame fetch btoa atob
setTimeout clearTimeout setInterval clearInterval createImageBitmap scroll
scrollTo scrollBy onappinstalled onbeforeinstallprompt crypto ondevicemotion
ondeviceorientation ondeviceorientationabsolute indexedDB webkitStorageInfo
sessionStorage localStorage visualViewport speechSynthesis
webkitRequestFileSystem webkitResolveLocalFileSystemURL openDatabase chrome
caches tilesAreLoaded numDdllogResponsesReceived lastDdllogResponse
onDdllogResponse LocalNTP $ getChromeUILanguage configData x TEMPORARY
PERSISTENT addEventListener removeEventListener dispatchEvent
Я не прошу составить список со всеми этими словами: используйте его и используйте не .Не все, но в некоторых случаях просто полезно знать, можно ли удалить window.
или нет.Это должно быть интересно не только для меня, чтобы работать, но и поделиться с другими.
Я плохо умею читать его из w3c, но думаю, что есть много чего сказать тем, кто знает, как компилятор разрешает пропущенный window.
.Это может быть полезно для нас знать!