84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
如果要实现对象A继承B,B继承C,除了把B的实例赋值成A的原型,除了把C的实例赋值成B的原型,有没有别的实现方式?本人初学者,没有查到相关的资料,请指教
换句话说,是否可以把你的问题理解为:“除了原型继承,javascript还有什么继承方式?”,如果是这样,答案是否,因为javascript的继承就是基于原型链的机制实现的。如果是问原型继承的写法,那倒是有几种:1)new构造函数创建;(即问题里提到的这种)2)Object.create;1)对象字面量;具体用法,资料就很多了:https://developer.mozilla.org...
除了原型继承还有js提供的API:call和apply将this的指向改变,借用方法call用法:
a.call(b,pro1,pro2,...)
apply用法:
a.apply(b,[pro1,pro2,...])
两者区别在于前者传递参数的方式是一个一个传递,后者传递参数的方式是通过传递数组,然后铺开来
这两者还有其他用法,比如讲伪数组转化为真数组:Object.prototype.tostring.call(伪数组)
换句话说,是否可以把你的问题理解为:“除了原型继承,javascript还有什么继承方式?”,如果是这样,答案是否,因为javascript的继承就是基于原型链的机制实现的。
如果是问原型继承的写法,那倒是有几种:
1)new构造函数创建;(即问题里提到的这种)
2)Object.create;
1)对象字面量;
具体用法,资料就很多了:
https://developer.mozilla.org...
除了原型继承还有js提供的API:call和apply将this的指向改变,借用方法
call用法:
apply用法:
两者区别在于前者传递参数的方式是一个一个传递,后者传递参数的方式是通过传递数组,然后铺开来
这两者还有其他用法,比如讲伪数组转化为真数组:
Object.prototype.tostring.call(伪数组)