При определении классов 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();
Так есть ли способ использовать эти классы в области видимости без необходимости повторно объявлять их с другим именем?