Ara*_*Fey 6 javascript greasemonkey-4
我有一个类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
Run Code Online (Sandbox Code Playgroud)
怎么会这样?我怀疑这与Greasemonkey在具有提升权限的沙箱中执行用户脚本这一事实有关,但即便如此,我也无法理解为什么会输出false.此外,true如果函数和类未分配给输出,则输出将更改为window:
class Cls {};
function func() {};
console.log(Cls === Cls); // output: true
console.log(func === func); // output: true
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?