这是一段防止用户打开开发者工具
的代码。
执行结果是如果打开了开发者工具,alert(num)
执行了2次,如果没有打开只执行一次。请问为什么会出现执行2次?
function toDevtools() {
let num = 0;
let devtools = new Date();
devtools.toString = function () {
num++;
console.log(222, num);
alert(num)
if (num > 1) {
// window.location.href = "http://www.fly63.com"
console.log(1111);
}
}
console.log('', devtools);
}
toDevtools();
https://www.bilibili.com/video/BV1WV4y187Mv/?aid=870612797&ci...
第一次执行是因为在控制台输出 console.log('', devtools)
时,控制台需要将 devtools 对象转换为字符串来显示。由于重写了 toString
方法,在转换对象为字符串时会执行重写的方法,并且 num
会加 1
,然后触发 alert(num)
。
第二次执行是因为在重写的 toString
方法中,通过 alert(num)
再次触发了弹窗,并且此时 num
已经加 1
,所以会弹出加 1
后的值。
如果没有打开开发者工具,只会执行一次 alert(num)
,因为重写的 toString
方法不会被调用。
我不断得到: debug.log 我的包文件如下: 我是npm的新手,当我第一次下载它时,我能够在我的本地服务器上毫无问题地启动它。 我想切换我的浏览器,这样做,突然npm start有一个问题。 我知道还有其他类似的问题,但没有一个能缓解我的问题。
我发现这样的php代码: 我希望这个循环会执行4次,因为$I变成了对$的引用(对吗?)。然而,循环只执行一次,并输出: a=10,i=10 我不明白为什么它会这样工作。有什么想法吗?
我有一个对我来说很奇怪的问题。我实现了,将使用执行。问题是,它只执行一次。。。 下面是有用的代码(是一个枚举): 有趣的是,如果我用一些if-else语句替换这个开关,它工作得很好,这意味着这个Runnable按照我的要求每50毫秒执行一次。。! 下面是调度设置: 为什么用if-else语句每50ms调用一次Runnable,为什么用switch只调用一次?? 编辑:因为你问,这里是MenuEve
问题内容: 我一直在做倒计时计划,我想到了这个。 在while循环的最后,没有内部的print / println语句,倒计时代码将不会执行。怎么会?该程序可以很好地与print语句一起工作。 问题答案: 首先,您的程序是 线程不安全的, 因为它是一个 共享变量 ,但是在同步块中既不访问也不访问。 现在,偶然地是一种同步方法,并且在任何实际架构上,使用 内存屏障 CPU指令来实现进入和退出同步块,
在每个print语句之前使用扫描器解决了这个问题,但我想要一个好的编程方法来解决这个问题。
每个人我最近在学习如何反应。正如这个链接所说,我学到了一个教训:react函数加载两次。但当我验证它时,我发现它确实加载了两次,但Chrome浏览器只打印了一次。我想知道为什么?这是我验证过的代码。 我认为铬应该混合。日志 1 App.js: 9我已经跑了1次!2pp.js: 9我已经跑了两次了! 我想知道为什么。非常感谢。