Javascript调用基类构造函数

Javascript调用基类构造函数,javascript,prototypal-inheritance,Javascript,Prototypal Inheritance,Person是基类,Emp继承自Person。我试图在Emp中使用姓名,位置个人属性 function Person(name, location){ this.name = name; this.location = location; } Person.prototype.getName = function(){ return 'Name: ' + this.name; } function Emp(id, name, location){ this.id

Person
是基类,
Emp
继承自
Person
。我试图在
Emp
中使用
姓名
位置
个人属性

function Person(name, location){
   this.name = name;
   this.location = location;
}

Person.prototype.getName = function(){
   return 'Name: ' + this.name;
}

function Emp(id, name, location){
     this.id = id;
     Person.call(this, name);
     Person.call(this, location);
}

Emp.prototype = Object.create(Person.prototype);

var e1 = new Emp(1, 'John', 'London');
e1.id   // 1
e1.name // 'London'
e1.location //undefined

导致此错误的原因是什么?为什么取London的值?

为什么要用一个参数调用构造函数两次

function Emp(id, name, location){
     this.id = id;
     Person.call(this, name, location);
}

为什么用一个参数调用构造函数两次

function Emp(id, name, location){
     this.id = id;
     Person.call(this, name, location);
}