class Class extends Object
Class(类) 对象表示一个类定义; 它包含静态方法和属性.
每个类对象都基于其继承的任何类, 如果没有指定, 则基于 Object. Object
基于 Class.Prototype
, 其又基于 Object.Prototype
, 因此类可以从任何这些基对象继承方法和属性.
"静态" 方法和属性是类对象本身拥有的任何方法和属性(因此不适用于特定实例), 而类实例的方法和属性则由原型拥有.
下面使用 "ClassObj" 作为任何类对象的占位符, 因为 "Class" 就是类本身. 通常, 使用类定义中给出的名称来引用类对象.
方法:
属性:
构造类的新实例.
Obj := ClassObj(Params*)
Obj := ClassObj.Call(Params*)
静态方法通常从 Object, Array 或 Map 类继承. 它执行以下功能:
Call 可以被通过定义静态方法(如 static Call()
) 在类定义中重写. 这允许修改类或阻止构造新实例.
注意, Class()
(在这种情况下使用原义的 "Class") 可用于构造基于 Class.Prototype
的新的 Class 对象. 但是, 新对象最初没有 Call 方法, 因为它不是 Object 的子类. 通过给 Base 赋值使其成为 Object 的子类, 或 Call 方法重新实现或从其他类中复制. 在使用标准的 Call 方法实例化原型之前, 还必须创建原型并将其赋值给该类.
检索或设置类的所有实例所基于的对象.
Proto := ClassObj.Prototype
ClassObj.Prototype := Proto
默认情况下, 类的原型包含类定义中定义的所有实例方法和动态属性, 可用于检索对方法, 或 getters/setters 属性的引用, 或定义一个新的. 脚本还可以定义新的值属性, 这些值充当所有实例的默认属性值.
类的 Prototype 通常基于其基类的 Prototype, 所以 ClassObj.Prototype.base == ClassObj.base.Prototype
.
原型自动被定义为类定义创建的任何类对象的自身属性.