所以我是 Javascript 的新手,但我一直在研究一种与 C# 语义相似的编程语言,我想添加一个 JS 反编译器。我一直在研究在 Javascript 中实现 OOP 的各种方法,但我不完全确定它是否会进一步发挥作用。
让我从一个例子开始。这是我的语言中的一段非常简单的代码:
// test.fd
// this code will be put in package 'test'
class Foo
{
float bar;
- test
{
int x = 3;
}
}
它输出这个:
var test = {
function Foo(){
this.bar = 0.0;
};
foo.prototype.test = function(){
var x = 3;
};
}
现在我有几个问题。目前,当它编译类时,它会创建 js 函数 'Foo()',我认为它实际上是一个构造函数。我想如果用户没有创建默认构造函数,我应该默认创建它,在这种情况下使用它。但是如果我想为同一个类有多个构造函数怎么办?它们是否必须具有不同的名称,我是否必须为每个构造函数重新创建所有方法和属性?
我的下一个问题是,在 JS 中实现继承的最佳方式是什么?我的语言假定所有方法都是虚拟的,因此它应该有望使多态性更容易。
谢谢大家,