2017-08-20 1 views

Répondre

1

Le document est disponible dans n'importe quelle portée, sauf si elle est spécifiquement écrasée, ce qui n'arrive généralement pas.

Cela signifie que l'on peut faire

var obj = { 
 
    key : function() { 
 
     return document.getElementById('test'); // still the document 
 
    } 
 
} 
 

 
console.log(obj.key());
<div id="test"></div>

Ceci est beacuse document en lui-même est une variable spéciale mondiale qui est toujours disponible, tout comme window

D'autre part, tous les éléments ont une fonction onload, donc la plupart du temps on n'a pas affaire à window.onload si l'on écrit juste onload.

Non seulement cela, mais étant une propriété d'un objet, cela dépend de this étant réellement la fenêtre, quelque chose qu'il est seulement dans la portée globale.
Créer une autre portée et onload est autre chose que window.onload

var obj = { 
 
    key : function() { 
 
     onload = function() {  // this is not window.onload 
 
      console.log('test'); 
 
     }; 
 
    } 
 
} 
 

 
console.log(obj.key());