JS的for循环中的var 和 let

在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");
    v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值