试图学习如何使用javascript类,但不确定如何正确初始化类
不知道为什么这个类的构造不起作用,也许我只是用错误的方式调用了这个函数?这是我的密码:试图学习如何使用javascript类,但不确定如何正确初始化类,javascript,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('
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.....
摘自(根据上下文修改):
执行代码新零(…)
时,会发生以下情况:
zero.prototype
zeros
,并将此绑定到新创建的对象<代码>新零
相当于新零()
,即如果未指定参数列表,则调用零时不带参数new
表达式的结果。如果构造函数没有显式返回对象,则使用在步骤1中创建的对象。(通常构造函数不返回值,但如果要覆盖正常的对象创建过程,则可以选择返回值。)值得注意的是,JavaScript没有Java和C#等基于类的OOP语言那样的类。JavaScript使用原型继承(一个对象引用另一个对象,该对象是它的原型,它可以从中继承属性)。上面是一个构造函数(
zeros
)和相关对象(zeros.prototype
)。您可以将其与new
一起使用,这将创建一个新对象,该对象由zero所指向的对象支持。prototype
指向,然后使用this
调用zero
,引用该新对象。ES2015增加了类
,这主要是更方便的语法。也许还值得注意的是,JavaScript中压倒性的惯例是使用首字母大写字母命名构造函数函数,例如零
,而不是零
,而其他函数(按惯例)以首字母小写字母命名。有你需要知道的一切。引用时可能重复,请使用blockquotes避免瘟疫的出现。再次感谢@T.J.Crowder