5

I think document.getElementById is a function.

So this function can be assigned to variable. Like this

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

But It occurred error like this:

Uncaught TypeError: Illegal invocation

Adam Azad
  • 11,171
  • 5
  • 29
  • 70
khaki
  • 121
  • 2
  • 9

2 Answers2

8

The issue is context. When you take the reference to the function, you lose the function's context to document. So, in order to do what you are trying to, you need to bind the context:

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

Working example:

var hello = document.getElementById.bind(document);
console.log(hello('hello'));
<div id="hello">hello</div>
KevBot
  • 17,900
  • 5
  • 50
  • 68
3

Wrap it as a function with a parameter which represents the ID.

var hello = function(id){
     return document.getElementById(id);
}
console.log( hello('hello')  );
<div id="hello">hello</div>
Adam Azad
  • 11,171
  • 5
  • 29
  • 70