滴滴面试题 实现一个函数 传入两个参数A,B 使A类继承于B类

小弟才疏学浅 今天去面试了, 卷子上有这道题,
自以为想使A继承于B类,需要修改函数A内部的内容。

对这道题无从下手,过程中问了面试官..面试官也没给我答案

请问这个题怎么做

function fun(A,B){

}

阅读 2.8k
3 个回答

面试官没给你答案是因为目前无法实现。
最起码实例化A的时候,要调用一下B的构造器。但很显然不修改A,是无法做到的。
所以要么你没理解面试官的问题,要么就是这个面试官还不如你。

function B(name) {
  this.name = name
}

function A(name){
  // 继承B中的属性
  B.call(this, name);
}

B.prototype.greet = function() {
  console.log(`hello ${this.name}`); 
}

// 继承B的原型
function fn(A, B) {
  A.prototype = Object.create(B.prototype);
  A.prototype.constructor = A;
}

这不就是很多库里面都会有的extend之类的实现吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题