gpt4 book ai didi

javascript - 如果 Javascript 的原生 OOP 是无类的,那么构造函数呢?这不是意味着一个类吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:35:55 25 4
gpt4 key购买 nike

我认为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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com