我可以将 document.getElementById 分配给 javascript 中的变量吗

Can I assign document.getElementById to variable in javascript

我认为document.getElementById是一个函数。

所以这个函数可以赋值给变量。像这样

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

但是出现了这样的错误:

Uncaught TypeError: Illegal invocation

将其包装为一个函数,其中包含一个代表 ID 的参数。

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

问题是上下文。当您获取对函数的引用时,您将函数的上下文丢失到 document。所以,为了做你想做的事,你需要 bind 上下文:

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

工作示例:

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