Class 对象

class Class extends Object

Class(类) 对象表示一个类定义; 它包含静态方法和属性.

每个类对象都基于其继承的任何类, 如果没有指定, 则基于 Object. Object 基于 Class.Prototype, 其又基于 Object.Prototype, 因此类可以从任何这些基对象继承方法和属性.

"静态" 方法和属性是类对象本身拥有的任何方法和属性(因此不适用于特定实例), 而类实例的方法和属性则由原型拥有.

下面使用 "ClassObj" 作为任何类对象的占位符, 因为 "Class" 就是类本身. 通常, 使用类定义中给出的名称来引用类对象.

目录

方法

Call

构造类的新实例.

Obj := ClassObj(Params*)
Obj := ClassObj.Call(Params*)

静态方法通常从 Object, ArrayMap 类继承. 它执行以下功能:

Call 可以被通过定义静态方法(如 static Call()) 在类定义中重写. 这允许修改类或阻止构造新实例.

注意, Class()(在这种情况下使用原义的 "Class") 可用于构造基于 Class.Prototype 的新的 Class 对象. 但是, 新对象最初没有 Call 方法, 因为它不是 Object 的子类. 通过给 Base 赋值使其成为 Object 的子类, 或 Call 方法重新实现或从其他类中复制. 在使用标准的 Call 方法实例化原型之前, 还必须创建原型并将其赋值给该类.

属性

Prototype

检索或设置类的所有实例所基于的对象.

Proto := ClassObj.Prototype
ClassObj.Prototype := Proto

默认情况下, 类的原型包含类定义中定义的所有实例方法和动态属性, 可用于检索对方法, 或 getters/setters 属性的引用, 或定义一个新的. 脚本还可以定义新的值属性, 这些值充当所有实例的默认属性值.

类的 Prototype 通常基于其基类的 Prototype, 所以 ClassObj.Prototype.base == ClassObj.base.Prototype.

原型自动被定义为类定义创建的任何类对象的自身属性.