[英]Python-Like “Classes” in Javascript
我想知道如何在Javascript中制作类似于Python中的“类”。 获取此处列出的Python类和函数:
class one:
def foo(bar):
# some code
使用one.foo(bar)
调用函数“foo”。
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();
看看这个链接 。 有一种不同的方法在Javascript中进行OO编程。 细节太多了,无法在此解释。
如果您认真对待Javascript编程,那么您应该阅读本书 。
如果你想做真正的重型OO编程,我建议你看一下Coffee Script 。
Classy是一个JavaScript库,它试图将类似Python的类带入JavaScript。
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中对象创建和原型的更完整概述。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.