2017-01-20 5 views
0

Je pense que document.getElementById est une fonction.Puis-je affecter document.getElementById à une variable en javascript?

Cette fonction peut donc être affectée à une variable. Comme cette

var hello = document.getElementById; 
 
console.log(hello('hello')));
<div id="hello">hello</div>

Mais il a eu lieu l'erreur comme ceci:

Uncaught TypeError: Illegal invocation

+0

'var bonjour = document.getElementById ('bonjour'); '' console.log (bonjour) ' – zer00ne

+0

Qu'est-ce que vous essayez exactement de faire? –

+0

La méthode doit savoir sur quelle instance 'Document' vous voulez qu'elle soit appelée. Probablement, c'est 'document' – Oriol

Répondre

4

La question est contexte. Lorsque vous prenez la référence à la fonction, vous perdez le contexte de la fonction à document. Donc, pour faire ce que vous essayez de, vous devez bind le contexte:

var hello = document.getElementById.bind(document); 

Exemple de travail:

var hello = document.getElementById.bind(document); 
 
console.log(hello('hello'));
<div id="hello">hello</div>

+1

' :: document.getElementById' sera gentil – Oriol

2

l'envelopper en fonction d'un paramètre qui représente l'ID.

var hello = function(id){ 
 
    return document.getElementById(id); 
 
} 
 
console.log(hello('hello') );
<div id="hello">hello</div>