Javascript - 如何定义构造函数

时间:2011-02-17 15:12:05

标签: javascript

我有一个这样的对象:

Object1.prototype = {
    isInit: false,
    Get : function (){}
} 

现在我想添加一个带有一个参数的构造函数。我该怎么办?

5 个答案:

答案 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;
          }
};