What is the safest way, broadly supported across browsers, to create prototype chains?
<p>So I'm still learning JavaScript, and I'm working with prototypes right now. The lesson I just completed showed me how to use <code>__proto__</code> to create prototype inheritance chains. Here's an example of what I mean:</p>

<pre><code>function Person(firstName,lastName,dob){
  this.firstName = firstName;
  this.lastName = lastName;
  this.dob = new Date(dob);
}
Person.prototype = {
  constructor: Person,
  getFullName: function(){
    return this.firstName + " " + this.lastName;
  },
  getAge: function(){
    var ageDiff = Date.now() - this.dob;
    var ageDiffDate = new Date(ageDiff);
    return Math.abs(ageDiffDate.getUTCFullYear() - 1970);
  }
}

function Employee(firstName,lastName,dob,position,dept){
  this.firstName = firstName;
  this.lastName = lastName;
  this.dob = new Date(dob);
  this.position = position;
  this.dept = dept;
  this.isFired = false;
}
Employee.prototype = {
  constructor: Employee,
  __proto__: Person.prototype,
  doWork: function(){
    console.log(this.getFullName() + " is doing work");
  }
}

function Manager(firstName,lastName,dob,dept){
  this.firstName = firstName;
  this.lastName = lastName;
  this.dob = new Date(dob);
  this.position = "Manager";
  this.dept = dept;
}
Manager.prototype = {
  constructor: Manager,
  __proto__: Employee.prototype,
  fireEmployee: function(emp){
    emp.isFired = true;
    console.log(this.getFullName() + " has fired " + emp.getFullName());
  }
}

var per = new Person("Bob","Saget","1990-02-05");
var emp = new Employee("Jane","Doe","1980-05-02","Clerk","Sales");
var mgr = new Manager("Jim","Smith","1970-09-10","Sales");
</code></pre>

<p><code>Employee</code> inherits from <code>Person.prototype</code>, and <code>Manager</code> inherits from <code>Employee.prototype</code>. Nice and simple.</p>

<p>However, I've read that the <code>__proto__</code> property isn't guaranteed across all web browsers, since ES6 hasn't been widely adopted yet. I've been scanning the internet, trying to find a clear explanation of what to do instead, and I'm getting a little bit lost.</p>

<p>What is the safe, broadly supported way of setting prototype inheritance chains in ES5, other than using <code>__proto__</code>?</p>