Mis*_*hko 2 javascript constructor
在下面的JavaScript代码中调用main().我的问题是为什么调用第二个构造函数而不是第一个构造函数?我在这里错过了什么?
谢谢 !!
function AllInputs() {
alert("cons 1");
this.radioInputs = [];
alert(this);
}
function AllInputs(radioElement) {
alert("cons 2");
this.radioInputs = [radioElement];
alert(this);
}
AllInputs.prototype.toString = function() {
return "[object AllInputs: radioInputs: " + this.radioInputs.length + "]";
}
function main() {
var result = new AllInputs();
}
Run Code Online (Sandbox Code Playgroud)
Javascript不支持重载函数.
定义相同的函数两次时,第二个定义将替换第一个定义.
相反,您应该创建一个函数,并检查arguments.length传递了多少个参数.
例如:
function AllInputs(radioElement) {
this.radioInputs = arguments.length ? [radioElement] : [];
alert(this);
}
Run Code Online (Sandbox Code Playgroud)