Python-Like "Classes" in Javascript

Python-Like "Classes" in Javascript

本文关键字:quot Javascript in Classes Python-Like      更新时间:2023-09-26

我想知道如何在Javascript中制作类似于Python中的"类"。以这里列出的Python类和函数为例:

class one:
    def foo(bar):
        # some code

函数"foo"将被one.foo(bar)调用。
JS对应的是什么?我猜应该是这样的:

var one = {
    foo: function(bar) {
        // JavaScript
    }
};

谢谢。

在Javascript中创建类的原生方法是首先定义构造函数:

function MyClass() {
}

和原型:

MyClass.prototype = {
    property: 1,
    foo: function(bar) {
    }
};

然后你可以创建MyClass的实例:

var object = new MyClass;
object.foo();

添加静态方法

MyClass.staticMethod = function() {};
MyClass.staticMethod();

扩展MyClass:

function SubClass() {
}
SubClass.prototype = new MyClass;
SubClass.prototype.bar = function() {
};
var object = new SubClass;
object.foo();
object.bar();

Classy是一个JavaScript库,它试图将类python类引入JavaScript。

看看这个链接。在Javascript中进行OO编程有不同的方法。细节太多,这里无法解释。

如果你是认真的Javascript编程,你应该读这本书。

如果你想做真正的面向对象编程,我建议你看看Coffee Script。

Javascript没有真正的类。它所拥有的是原型——一个对象的实例,它被用作新对象的模板。

创建对象的方法是使用字面构造函数。它简洁,但缺点是不能在其结构中添加或使用复杂的语句。

另一种方式是:

function SomeClass(value) {
    if (value < 0) {
        this.field = -1;
    } else {
        this.field = value;
    }
}

然后创建一个新的实例,如下所示:

var obj = new SomeClass(15);

这使您能够在构造对象时使用条件逻辑、for循环和其他更复杂的编程技术。然而,我们只能添加实例字段,而不能添加"类"字段。通过修改对象创建器函数的prototype来添加类字段。

MyClass.prototype.fieldSquared = function () {
    return this.field * this.field;
}

这给出了Javascript中对象创建和原型更完整的概述。