javascript - 用变量缩短函数名

标签 javascript

我想通过更短的别名调用一些函数,以最小化代码大小。

(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');
})();

这将确保 tthis 将保留为 document 对象。


如果不能使用bind,则必须创建一个中间函数:

(function() {
    function t (id) {
        document.getElementById(id);
    }
    t('element-id');
})();

关于javascript - 用变量缩短函数名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14867417/

相关文章:

javascript - AngularJS : factory $http. get 请求不断获取 html 文件作为返回

javascript - instance.method 不是函数 (javascript)

javascript - 如何使用 mac 地址保护网络应用程序

javascript - 如何在 Javascript 中动态添加 anchor 标签到 div?

javascript - 删除对象时执行元素指令动画的 Angular 方式?

javascript - 如何从javascript中的对象值返回键?

javascript - 如何使用react-native-tab-view显示动态选项卡?

javascript - 如何将模板变量传递给 Vue js 中的事件处理方法

javascript - 您可以直接从 Javascript 中的数组填充对象的键吗?

javascript - 如何同步和显示不同谷歌图表的工具提示?