Python-Like "Classes" in Javascript
Python-Like "Classes" in Javascript
我想知道如何在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中对象创建和原型更完整的概述。
相关文章:
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- Javascript复选框函数:;缺少:在属性id之后"
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- CKEditor如何允许href="javascript:void(0)"在小部件中
- 插入“;img src"在javascript中
- "访问控制允许起源”;通过javascript从http页面调用同一网站的httpsurl时出现问题
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- 如何's css标记"-webkit最小设备像素比”;在Javascript中实现
- 内联javascript与"<脚本>"字符串错误地关闭了脚本标记
- 什么是"!函数(){}〃;javascript中的mean/do
- 使用javascript"这个“;用于jquery选择器
- 我可以在不使用乘法运算符“”的情况下进行乘法运算吗*"在JavaScript中
- 用分隔符分隔具有多个整数值的字符串的Javascript"重试错误的值
- 什么是==+"在javascript中
- 什么是“;回归"javascript中的mean
- 可以't删除“;C: fakepath "使用javascript替换和regex
- 如何删除“"使用javascript从字符串中提取字符
- 如何使用Javascript获取当前页面URL,并在<a href="[the_URL]”>
- JavaScript异常:“;不成形”;在firefox浏览器上;XMLHttpRequest"chrome浏
- button1.Attributes.Add(“onclick"“javascript: window.open