Я прочитал некоторые возможные статьи, которые я мог найти в Интернете о полиморфизме. Но я думаю, что не мог полностью понять значение этого и его важность. В большинстве статей не говорится, почему это важно и как я могу достичь полиморфного поведения в ООП (конечно, в JavaScript).
Я не могу предоставить пример кода, потому что у меня нет идеи, как его реализовать, поэтому мои вопросы приведены ниже:
- Что это?
- Зачем нам это нужно?
- Как это устроено?
- Как я могу добиться этого полиморфного поведения в JavaScript?
У меня есть этот пример. Но легко понять, каким будет результат этого кода. Это не дает четкого представления о самом полиморфизме.
function Person(age, weight) {
this.age = age;
this.weight = weight;
this.getInfo = function() {
return "I am " + this.age + " years old " +
"and weighs " + this.weight +" kilo.";
}
}
function Employee(age, weight, salary) {
this.salary = salary;
this.age = age;
this.weight = weight;
this.getInfo = function() {
return "I am " + this.age + " years old " +
"and weighs " + this.weight +" kilo " +
"and earns " + this.salary + " dollar.";
}
}
Employee.prototype = new Person();
Employee.prototype.constructor = Employee;
// The argument, 'obj', can be of any kind
// which method, getInfo(), to be executed depend on the object
// that 'obj' refer to.
function showInfo(obj) {
document.write(obj.getInfo() + "<br>");
}
var person = new Person(50,90);
var employee = new Employee(43,80,50000);
showInfo(person);
showInfo(employee);