#54js 继承与原型链

lencxlencx2022/06/28
/**
* 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);
License Copyright © 2022-present lencx