我有这个网页,我必须使用很多 document.getElementById
的。由于我很懒,我想到通过分配 document.getElementById
来节省一些字节。到更短的变量:
var geid = document.getElementById;
但是,这并没有达到我的预期。它给了我以下错误:
Uncaught TypeError: Illegal invocation
考虑以下代码片段,它演示了我的问题:
var foo = document.getElementById('foo');
console.log(foo); // outputs: '<div id="foo">Foo</div>'
var geid = document.getElementById;
var foo_geid = geid('foo'); // Aaaaaargh! Uncaught TypeError: Illegal invocation
console.log(foo_geid);
<div id="foo">Foo</div>
那我做错了什么?为什么我不能做我所做的事情?
我检查了“How does the "this" keyword work? ”,因为我有预感 this
必须对这一切做点什么。 (在我看来,getElementById
以某种方式与 document
对象分离)。但我无法真正查明和阐明问题。谁能帮我吗?
最佳答案
您需要使用一个函数:
var d = function(id)
{
return document.getElementById(id);
}
然后你就可以像这样使用它:
var el = d('someId');
关于javascript - 为什么将一个函数(属于一个对象)分配给一个变量会有这样的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46278258/