我认为Javascript原生OOP系统据说是无类的,是基于对象的,而不是基于类的。但是我看到的每个例子总是以类似于
的构造函数开始function Person(name) {
this.name = name;
}
仅仅通过这种方式使用构造函数,这是否已经暗示正在使用一个类? (一个叫做 Person 的类)
详细信息:
如果我们可以使用
a.__proto__ = b;
在任何 Javascript 平台上,那么我认为它是无类的。但我们不能那样做。如果我们想要这种行为,我们需要使用
function F() { }
F.prototype = b;
a = new F();
因此,必须使用构造函数。因此,如果构造函数是 Javascript 中的基石,则意味着它旨在成为 Person、Widget 等的构造函数,而这些都是类。
最佳答案
Javascript 中的 OOP 与 Java OOP 等略有不同。 Javascript 构造函数不引用类定义(因此它是无类的)。相反,构造函数指的是原型(prototype)。 Javascript 中 OOP 的基础是 Object 对象(不是 Object 类),所有其他对象都从中派生。
原型(prototype)设计赋予您继承权,以及使用属性和方法扩展现有对象的可能性。
我建议你this article .
在你的例子中:
function Person(name) {
this.name = name;
}
Mike = new Person('Mike');
Person() 函数让您可以创建一个新对象,其原型(prototype)是 Object
对象,它具有一个名为 name
的新属性。那么,在 Javascript oop 中,这种函数称为构造函数。
关于javascript - 如果 Javascript 的原生 OOP 是无类的,那么构造函数呢?这不是意味着一个类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12673927/