我想通过缩短别名来调用某些函数,以尽量减少代码大小。使用变量缩短函数名称
(function(){
var t = document.getElementById;
t('element-id');
})();
这段代码给出Error: Could not convert JavaScript argument
。为什么?
我想通过缩短别名来调用某些函数,以尽量减少代码大小。使用变量缩短函数名称
(function(){
var t = document.getElementById;
t('element-id');
})();
这段代码给出Error: Could not convert JavaScript argument
。为什么?
当您将一个函数分配给一个不同的变量时,其值为this
的值更改。由于getElementById
预计this
是一个元素,因此会出现错误。
如果你在一个环境中,你可以使用bind
是,使用它:
(function(){
var t = document.getElementById.bind(document);
t('element-id');
})();
这将确保t
的this
将保持document
对象。
如果您不能使用bind
,你必须创建一个中介的作用:
(function() {
function t (id) {
document.getElementById(id);
}
t('element-id');
})();
约瑟夫说,该this
值的变化和它搅乱了功能。请尝试以下操作:
var t = function(i) {return document.getElementById(i);};