6

我有一个Foo带有静态方法的类,它与 进行比较thisFoo出于某种原因,该比较的输出是false

// ==UserScript==
// @name     GreaseMonkey test
// @version  1
// @grant    none
// @include  *
// ==/UserScript==

window['Cls'] = class {};
window['func'] = function() {};

console.log(Cls === Cls);  // output: false
console.log(func === func);  // output: false

怎么会这样?我怀疑这与 Greasemonkey 在具有提升权限的沙箱中执行用户脚本有关,但即便如此我也不明白为什么会输出false. true此外,如果函数和类未分配给,则输出更改为window

class Cls {};
function func() {};

console.log(Cls === Cls);  // output: true
console.log(func === func);  // output: true

这里发生了什么?

4

0 回答 0