用过React的读者知道,经常用extends继承React.Component。
// 部分源码
function Component(props, context, updater) {
// ..
}
Component.prototype.setState = function(partialState, callback){
// ...
}
const React = {
Component,
// ...
}
// 使用
class index extends React.Component{
// ...
}
点击这里查看 React github源码(opens new window)
面试官可以顺着这个问JS继承的相关问题,比如:ES6的class继承用ES5如何实现。据说很多人答得不好。
#构造函数、原型对象和实例之间的关系
要弄懂extends继承之前,先来复习一下构造函数、原型对象和实例之间的关系。 代码表示:
function F(){}
var f = new F();
// 构造器
F.prototype.constructor === F; // true
F.__proto__ === Funct