“with “is not allowed in strict mode

这个需要怎么改啊
if(active<flakesMaxActive){with(s.flakes[parseInt(rnd(s.flakes.length))]){if(!snowCollect&&active==0){recycle();}else if(active==-1){active=1;}}}}

"with" 语句在严格模式下不允许使用,因为它可能导致意外行为并使代码难以理解。

您可以使用更明确的方法来替换 "with" 语句,例如将要操作的对象分配给变量,然后使用该变量访问其属性。 以下是代码如何重写的示例:

if(active<flakesMaxActive) {
    var randomFlake = s.flakes[parselnt(rnd(s.flakes.length))];
    if(!randomFlake.snowCollect && randomFlake.active == 0){
        randomFlake.recycle();
    }else if(randomFlake.active == -1){
        randomFlake.active = 1;
    }
}

您还应该更新使用 "with" 语句的其他部分的代码,以避免任何错误或意外行为。

这是java吗,确定不是js?
报错说,在严格模式下不允许使用with关键字

问题的标签错了吧,这个应该是js。
代码里是不是加了'use strict'?那个报错就是指在严格模式下不能使用with,删掉就行了。

删掉

use strict

这一行代码
或者不用with关键字

if (active < flakesMaxActive) {
    // 变量抽取出来
    let flake = s.flakes[parseInt(rnd(s.flakes.length))];
    // 改为对变量的调用,可能不完全,你看看哪些是"flakes"的方法或者属性
    if (!flake.snowCollect && active == 0) {
        flake.recycle();
    } else if (active == -1) {
        active = 1;
    }
}

谢邀

评论区有2位已经说到点子上了,你参考一下这篇文章的解释,或许更清楚,我就不复制过来了,仅供参考:
http://linterrors.com/js/with-is-not-allowed-in-strict-mode

不要使用with了,这个东西真心不推荐,你看现在还有谁这样写?用es6的解构赋值吧,const { a, b } = obj类似这样

谢邀

评论区有3位已经说到点子上了,你参考一下这篇文章的解释,或许更清楚,我就不复制过来了,仅供参考:
http://linterrors.com/js/with-is-not-allowed-in-strict-mode

严格模式下,不允许使用with,改成普通的js语法试试。