External Classes

Top  Previous  Next

External Classes 

Classes can be marked as external, in which case they’re meant to expose classes that are not implemented in the script, and unlike interfaces, then can define fields. 

Following example (taken from the w3regex RTL unit) wraps JavaScript class RegExp

 

   type
   JRegExp  =  class  external  'RegExp'
   constructor  Create(regularExpression,  flags:  String);  overload;
   constructor  Create(regularExpression:  String);  overload;
 
   function  Exec(s:  String):  TStrArray;  external  'exec';
   function  Test(s:  String):  Boolean;  external  'test';
 
   global  :  Boolean;
   ignoreCase  :  Boolean;
   lastIndex  :  Integer;
   multiline  :  Boolean;
   source  :  String;
   end;

 

An external name can be provided for an external field.

External classes can be subclassed. All external classes are parented from the JObject class. 

 

   FField:  Integer;  external  "Hello";