The question is:
Using JavaScript prototyping, extend the Employee (Exercise 4). Create two
new subclasses from the Employee: a Salesman and a Manager class. Use a prototype
to create a salary property for the new employees (setSalary, getSalary),
and a setRaise() method to add 15 percent to the salary. Check to see if each of
the new Employees is an instance of the Employee class.
<script type="text/javascript">
function Employee(){
var = name;
this.getName = function(){
return this.name;
}
this.setName = function(name){
this.name = name;
};
}
My answer is:
<html>
<head><title>Object object</title>
<script type="text/javascript">
function Employee(){
var name;
this.getName = function(){
return this.name;
}
this.setName = function(name){
this.name = name;
}
}
function Salesman() {}
Salesman.prototype = new Employee();
Salesman.prototype.constructor = Salesman;
Salesman.prototype.setSalary = function(salary) {
this.salary = salary;
}
Salesman.prototype.getSalary = function() {
return this.salary;
}
Salesman.prototype.setRaise = function() {
return (this.salary+(this.salary*0.15));
}
function Manager() {}
Manager.prototype = new Employee();
Manager.prototype.constructor = Salesman;
Manager.prototype.setSalary = function(salary) {
this.salary = salary;
}
Manager.prototype.getSalary = function() {
return this.salary;
}
Manager.prototype.setRaise = function() {
return (this.salary+(this.salary*0.15));
}
</script>
</head>
<body bgColor="#EOFFFF">
<script type="text/javascript">
sm1 = new Salesman();
sm1.setSalary(10000);
alert("The raise will be "+sm1.setRaise());
mr1 = new Manager();
mr1.setSalary(134320);
alert("The raise will be "+mr1.setRaise());
if (mr1 instanceof Manager)
{
alert('correct');
}
if (mr1 instanceof Salesman)
{
alert('correct');
}
else alert('false');
</script>
</body>
</html>
which works fine - I am just wondering if there is a better (neater and shorter) way I could write this code.
thanks