troubleshooting Question

please look at my code and advise if I could do this better (extending objects)

Avatar of jecommera
jecommeraFlag for United Kingdom of Great Britain and Northern Ireland asked on
JavaScript
2 Comments1 Solution510 ViewsLast Modified:
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
Join the community to see this answer!
Join our exclusive community to see this answer & millions of others.
Unlock 1 Answer and 2 Comments.
Join the Community
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 2 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros