目前,我使用的语言对面向对象的构造的支持绝对为零。对我来说唯一可用的是局部/全局变量,闭包,第一类函数和关系数组(映射)。
我想编写一组文件/函数,以便创建具有public
,private
,protected
static
和非静态字段的类。最好使用不太笨拙的语法。
我做了一个构造新的“类”的函数
function new_class(sub_class)
public_static = { } // new map
private_static = { }
protected_static = { }
instances = { } // Map which checks if objects belong to this class.
// Default constructor for this class.
public_static.new = function()
public = { } // create a new 'object'
private = { }
protected = { }
instances[public] = true // This class made this object.
return public, private, protected
public_static.object_is_from_my_class(obj)
return instances[obj] == true // check if we created it
return public_static, private_static, protected_static
使用闭包,我可以保护所有地图。我什至可以确定是否通过此函数专门创建了一个对象,因此现在可以进行类检查类(此对象是Dog
吗?是Cat
吗?它是Animal
)。
但是我该如何实现动态调度和真正的子分类?