/**
* 1. new foo() // 输出什么
* 2. foo() // 输出什么
* 3. f.b // 输出什么,为什么(this.b 和 foo.prototype.b 的区别)
* 4. foo.c 和 foo.d 有什么区别?
* 5. foo.prototype = { e: 5, f: 6 } 写法有什么问题?
* 6. new 关键字做了哪些事情?
* 7. f.e // 输出什么,为什么(查找路径是什么)
**/
let foo = function() {
this.a = 1;
this.b = 2;
}
const f = new foo();
foo.prototype.b = -2;
foo.prototype.c = 3;
foo.d = 4;
// Bar 如何继承 Foo
function Foo() {
this.name = "lencx";
this.age = 20;
}
function Bar() {
// TODO
}
function Bar() {
Foo.call(this);
}
// 添加原型实例(Foo.prototype)作为构造器函数 prototype 属性的值
Bar.prototype = Object.create(Foo.prototype);