搜索

首页  >  问答  >  正文

关于javascript继承的疑问

如果要实现对象A继承B,B继承C,除了把B的实例赋值成A的原型,除了把C的实例赋值成B的原型,有没有别的实现方式?本人初学者,没有查到相关的资料,请指教

仅有的幸福仅有的幸福2747 天前510

全部回复(2)我来回复

  • 大家讲道理

    大家讲道理2017-05-19 10:39:35

    换句话说,是否可以把你的问题理解为:“除了原型继承,javascript还有什么继承方式?”,如果是这样,答案是否,因为javascript的继承就是基于原型链的机制实现的。
    如果是问原型继承的写法,那倒是有几种:
    1)new构造函数创建;(即问题里提到的这种)
    2)Object.create;
    1)对象字面量;
    具体用法,资料就很多了:
    https://developer.mozilla.org...

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:39:35

    除了原型继承还有js提供的API:callapply将this的指向改变,借用方法
    call用法:

    a.call(b,pro1,pro2,...)

    apply用法:

    a.apply(b,[pro1,pro2,...]) 

    两者区别在于前者传递参数的方式是一个一个传递,后者传递参数的方式是通过传递数组,然后铺开来

    这两者还有其他用法,比如讲伪数组转化为真数组:
    Object.prototype.tostring.call(伪数组)

    回复
    0
  • 取消回复