我有一个Foo
带有静态方法的类,它与 进行比较this
,Foo
出于某种原因,该比较的输出是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
这里发生了什么?