我想通過縮短別名來調用某些函數,以儘量減少代碼大小。使用變量縮短函數名稱
(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);};