Не совсем уверен, что User.addPerson()
должен делать, но чтобы ответить на ваш главный вопрос ...
Если вы хотите перехватить слишком много (или слишком мало) параметров, переданных new User()
в addPerson()
функция, вы можете передать arguments
, а не только имя и адрес электронной почты.Вы можете сделать это с помощью:
this.addPerson.apply(this, arguments);
, чтобы addPerson
увидел все аргументы, переданные в User()
var Person = function(name, email) {
this.name = name;
this.email = email;
this.addPerson = function(name, email) {
var paraLength = arguments.length;
console.log(paraLength) //logs 2
if(paraLength < 2 || paraLength > 2) {
console.log( "Input must be just name and email"); //does nothing
}else{
//do other things
}
}
}
const User = function(name, email) {
Person.call(this, name, email);
this.addPerson.apply(this, arguments); //adding user on execution
};
User.prototype = Object.create(Person.prototype);
var user1 = new User("user1", "email@gmail", "this error", "not just ignored")