在扩展范围内定义 Gjs 类时,由于它们可以被分配给变量以供以后使用,因此有一个句柄(即它们被分配给的变量)可以在整个代码中使用它们。
var myClass = new Lang.Class({Name:'thisClass',...});
var instance = new myClass();
但是尝试在扩展范围内、在窥镜范围内使用在扩展中定义的这些类是不可能的,因为据我所知没有分配给它们作为句柄的全局变量。
它们肯定是全局定义的,因为声明同名的 Gjs 类会在镜像中触发错误。
//the following executed is within the scope of looking glass while an exctension including a class with the same name is running
var myClassLG = new Lang.Class({Name:'thisClass',...});
// returns <exception Error: Type of Gjs_thisClass is already registered.>
var myClassLG = new Lang.Class({Name:'thisClassWithDifferentNameButSameContent',...});
// this works
var instance = new myClassLG();
那么有没有办法在镜子范围内使用这些类而不必用不同的名字重新声明它们?