1

我正在创建一个 JavaScript 框架,用于在经典的面向对象编程中制作应用程序(因此使用类/接口而不仅仅是原型)。但是,我仍然无法为这些人命名。

例如 :

var Bidule = function() { /*...*/ } ;
Bidule.prototype = { /*...*/ } ;

Bidule 是OOP 类,因为类是构造函数吗?或者它只是一个构造函数?由于类没有原型,我认为它不能称为真正的类。

所以这意味着我应该称它们为“构造函数”。但是,接口或抽象类呢?如果它们不是构造函数,那么正确的词是什么?接口是一种类吗?

我在我的框架中设计了构造函数、类和接口。但是我需要一个名称来重新组合所有主题,以便我们可以构建这样的主题之一:

var Bidule = new _NAME_.Class(/*...*/) ; // Where _NAME_ is the name of the container of class/function/interface.

我在想“概念”,但我不确定,想知道你的意见。


我还将“可见性”命名为用于描述公共/私有类的常用词,“类型”用于描述静态/抽象/接口/单例/最终类。这些是正确的吗?


最后一个问题:动词' extend '和' inherit '有区别吗?

提前感谢您的回答。

4

1 回答 1

1

Javascript 不是传统的 OO 语言,它是原型。由于这个原因,一些关于 OO 的概念不能应用于 js。

Bidule是你的类型,所以它是你的“类”。构造函数是您赋予变量的函数

var Bidule = function() { /*...*/ } ;
Bidule.prototype = { /*...*/ } ;

var obj = new Bidule();
obj.foo = 'bar';

var obj2 = new Bidule();
obj2.foo = 'foo';

alert(obj instanceof Bidule); // true
alert(obj2 instanceof Bidule); // true
alert(obj.foo); // bar
alert(obj2.foo); // foo

Javascript 不支持抽象类或接口,不,接口不是某种类。接口定义了契约,或者的类做什么,但没有指定如何

在这种情况下,扩展和继承具有相同的含义。

于 2013-09-01T02:54:47.240 回答