继承原型JS时如何传递参数?

时间:2019-02-20 14:14:28

标签: javascript parameter-passing prototype prototypal-inheritance

例如,我们有一个功能

function FirstFunction(name, surname){
    this.name = name;
    this.surname = surname;
    ...
}

我们在其原型中有一些功能,而我们还有另一个功能“ SecondFunction”及其自己的原型。当我想继承原型时,我会写

SecondFunction.prototype = Object.create(FirstFunction.prototype);

现在,当我尝试使用创建新变量时

var newVariable = new SecondFunction();

我想传递在FirstFunction中列出的参数'name'和'surname',以便能够使用FirstFunction原型中的函数。哪种方法最好?

1 个答案:

答案 0 :(得分:1)

我认为正确的方法是使用callapply

function FirstFunction(name, surname){
    this.name = name;
    this.surname = surname;
}

function SecondFunction(name, surname) {
  FirstFunction.call(this, name, surname)
}
SecondFunction.prototype = Object.create(FirstFunction.prototype);


var newVariable = new SecondFunction('Harry', 'Potter');
console.log(newVariable);

您可以参考this article对其进行解释。