【发布时间】:2014-02-03 10:11:12
【问题描述】:
我正在阅读一些关于在 Javascript 中创建类的内容。我知道 Javascript 中不存在这个概念,并且可以使用 prototype。
我正在尝试将以下代码从 Java 转换为 Javascript。具体来说,我想要两个构造函数,一个无参数,一个有两个参数:
public class MyClass {
int width = 10;
int height = 20;
public MyClass() { };
public MyClass(int w, int h) {
this.width = w;
this.height = h;
};
...
}
据我所知,我需要在 Javascript 中定义我的“类”:
function MyClass() {
this.width = 10;
this.height = 20;
};
但是,如何定义我的第二个构造函数?我希望能够以两种方式创建我的类的实例:
var Instance1 = new MyClass();
var Instance2 = new MyClass(33,45);
更新:
好的,我知道我的构造函数不能具有相同的名称,因为 Javascript 无法识别不同的参数类型。那么,如果我为构造函数使用不同的名称,我应该如何声明它们?以下是正确的吗?
function MyClass() {
this.width = 10;
this.height = 20;
};
MyClass.prototype.New2 = function(w,h) {
var result = new MyClass();
result.width = w,
result.height = h,
return result;
};
【问题讨论】:
-
How to overload constructor of an Object in JS (Javascript)? 的可能重复项(基本上,您不能,但该问题中有一种解决方法)
-
我通常传递一个对象,以便函数链(例如在继承时)可以读取和改变与该函数相关的任何值。它有点冗长,但使代码更具可读性。stackoverflow.com/a/16063711/1641941
标签: javascript class constructor prototype