试图学习如何使用带有javascript的类,不确定如何正确初始化类



不知道为什么这个类的构造不起作用,也许我只是以错误的方式调用函数?这是我的代码:

  function zeros(bits, pattern) {
    this.bits = bits;
    this.pattern = pattern;
  };
  zeros.prototype.short = function() {
    return this.bits.match(this.pattern)[0].length;
  };
  heyJude = zeros('1100110011001100000011000000111111001100111111001111110000000000000011001111110011111100111111000000110011001111110000001111110011001100000011', /([0]).*?1+/);
  console.log(heyJude.short());

通过 new 关键字调用它:

var heyJude = new zeros('...');
您需要

使用 new 运算符初始化对象

这将实例化 zeros 类的实例。

var heyJude = new zeros('110.....

取自 MDN(根据上下文进行了修改):

执行代码new zeros(...)时,会发生以下情况:

  1. 将创建一个新对象,该对象继承自 zeros.prototype
  2. 构造函数zeros使用指定的参数调用,this绑定到新创建的对象。 new zeros等价于new zeros(),即如果没有指定参数列表,则调用零而不带参数。
  3. 构造函数返回的对象将成为整个new表达式的结果。如果构造函数未显式返回对象,则改用在步骤 1 中创建的对象。(通常构造函数不返回值,但如果它们想要重写正常的对象创建过程,则可以选择这样做。

最新更新