当前位置: 代码网 > it编程>编程语言>Javascript > JS的for循环中的var 和 let详解

JS的for循环中的var 和 let详解

2024年06月12日 Javascript 我要评论
在js的嵌套for循环异步执行,声明 i 和 使用 i 获取到的变量 都要用 let 声明,不要用var。除非封装一个函数,把参数传进去调用,才能避免var使用最后一个变量,没必要。1.同步 vs 异

在js的嵌套for循环异步执行,声明 i 和 使用 i 获取到的变量 都要用 let 声明,不要用var。
除非封装一个函数,把参数传进去调用,才能避免var使用最后一个变量,没必要。

1.同步 vs 异步:

java.perform 本身是同步执行的。它会立即执行传递给它的函数。
在 java.perform 内部,你为每个 utils 类的方法重写了实现。这些重写的实现(implementation 函数)是在目标应用调用这些方法时被异步触发的。
2.变量作用域:

使用 let 声明 methodname 确保了每次迭代中 methodname 都是一个新的绑定。
使用 var 声明 methodname 会导致所有闭包共享同一个变量,这在方法重写中可能导致意想不到的结果。
3.异步触发:

虽然重写的方法实现是同步定义的,但实际调用这些方法(即执行重写的实现)是异步触发的,取决于目标应用何时调用这些方法。

java.perform(function () {
    let utils = java.use("com.xxx.xxx.utils");
    var methods = utils.class.getdeclaredmethods();
    for (let i = 0; i < methods.length; i++) {
        let methodname = methods[i].getname();
        console.log('methodname: ', methodname)
        var overloadsarray = utils[methodname].overloads;
        for (let j = 0; j < overloadsarray.length; j++) {
            overloadsarray[j].implementation = function () {
                var params = '';
                for (let k = 0; k < arguments.length; k++) {
                    params += arguments[k] + ' ';
                }
                console.log(`utils.${methodname} is called! params is: `, params);
                console.log(this);
                return this[methodname].apply(this, arguments)
            }
        }
    }
})

到此这篇关于js的for循环中的var 和 let的文章就介绍到这了,更多相关js的for循环中的var 和 let内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com