繁体   English   中英

Javascript - 如何定义构造函数

[英]Javascript - How to define a Constructor

我有一个这样的对象:

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

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

类声明

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 = {}

假设“ctor”是指“构造函数”,在JavaScript中只是一个函数。 在这种情况下,你的构造函数本身需要是“Object1” - 换句话说,如果已经将“Object1”定义为函数,那么你所拥有的就是有意义的。

从而,

function Object1(param) {
  // constructor code
}

将是您的类型的构造函数。

现在有一些JavaScript库提供了用于定义类的实用程序层。 有了这些,你通常会传递一些包含“init”函数的对象(就像你已经拥有的那样)。 这些库提供了用于创建“类”和从一个类扩展另一个类的API。

Javascript具有基于原型的对象模型。 检查这个mozilla wiki页面 ,突然你会在js land感觉好多了。

我们可以在javaScript中定义一个构造函数和我们的函数一样,所以构造函数只是一个函数。

//function declaration
function func(){}

在Contructor的情况下我们在构造中使用大写字母的首字母

//constructor 
function Func(){}

现在用你的构造函数做你想做的事

var constructor1 = new Func();
class CLASS_NAME
{
   private:
         int variable;
   public:
          CLASS_NAME()    //constructor
          {
                 variable = 0;
          }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM