new的时候做了什么
也就是 var Child = new Parent(); 干了啥
通过对原型的理解,我们很容易解答
1、创建一个空对象(不创建一个空的怎么往里面塞东西)
2、让Prarent中的this指向Child,并执行Parent的函数体(classconstructor,Parent本身)
3、设置原型链,将Child的__proto__的成员指向了Prarent的prototype的成员
4、给Child赋值,Parent的返回值类型是个值child就是个值,是个对象,child就是这个对象
也有回答说:将初始化完毕的新对象地址,保存到等号左边的变量中
就是赋值,没啥好解释的,面试官听不懂公司就没必要去了
名词解释:
函数体:用class就是constructor,用构造函数就是Parent本身
prototype是原型才有的属性,__proto__对象跟原型都有,__proto__里面存的是Parent的constructor
JavaScript的原型继承实现方式就是:
定义新的构造函数,并在内部用call()调用希望“继承”的构造函数,并绑定this;
借助中间函数F实现原型链继承,最好通过封装的inherits函数完成;
继续在新的构造函数的原型上定义新方法。