我有一个这样的对象:
Object1.prototype = {
isInit: false,
Get : function (){}
}
现在我想添加一个带有一个参数的构造函数。我该怎么办?
答案 0 :(得分:64)
班级声明
var User = function(name, age) { // constructor
}
User.prototype = {}
实例变量(成员)
var User = function(name, age) {
this.name = name;
this.age = age;
}
User.prototype = {}
静态变量
var User = function(name, age) {
this.name = name;
this.age = age;
}
User.prototype = {
staticVar: 15,
anotherStaticVar: 'text'
}
这里我定义了两个静态变量。每个用户实例都可以访问这两个变量。注意,我们可以用值初始化它;
实例函数(方法)
var User = function(name, age) {
this.name = name;
this.age = age;
}
User.prototype = {
getName: function() {
return this.name;
},
setName: function(name) {
this.name = name;
}
}
用法示例:
var user = new User('Mike', 29);
user.setName('John');
alert(user.getName()); //should be 'John'
静态功能
var User = function(name, age) {
this.name = name;
this.age = age;
}
User.create = function(name, age) {
return new User(name, age);
}
User.prototype = {}
答案 1 :(得分:10)
假设“ctor”是指“构造函数”,在JavaScript中只是一个函数。在这种情况下,您的构造函数本身需要是“Object1” - 换句话说,如果您已经将“Object1”定义为函数,那么您所拥有的内容是有意义的。
因此,
function Object1(param) {
// constructor code
}
将是您的类型的构造函数。
现在有一些JavaScript库提供了用于定义类的实用程序层。有了这些,你通常会传递一些包含“init”函数的对象(就像你已经拥有的那样)。这些库提供了用于创建“类”和从一个类扩展另一个类的API。
答案 2 :(得分:5)
Javascript具有基于原型的对象模型。检查这个mozilla wiki page然后突然你会在js land感觉好多了。
答案 3 :(得分:1)
我们可以在javaScript中定义一个构造函数和我们的函数一样,所以构造函数只是一个函数。
//function declaration
function func(){}
如果是Contructor我们在构造中使用大写字母,如
//constructor
function Func(){}
现在用你的构造函数做任何你想做的事情
var constructor1 = new Func();
答案 4 :(得分:-4)
class CLASS_NAME
{
private:
int variable;
public:
CLASS_NAME() //constructor
{
variable = 0;
}
};