构造函数
function Person(){
this.name='建林"this.age=18
this.say=function(){
console.log( " person的say ' )}
}
let p1=new Person(console.log(p1.name) //person的say
Class(es6新语法本质和构造函数一样 是一个 语法糖)
class Person{
constructor({
this.name='建林"
this.age=18
}
say() {
console.log( " person的say ' )
}
}
let p2=new Person()
p2.say() // person的say
继承(extends)
class 子 extends 父 {
}
class Teacher extends Person{
// 复杂写法
constructor(){
//constructor在this之前一定要写super()
super();//调用父亲的constructorl
this.name='思聪' // 会层叠 覆盖掉继承的值
this.score=10000
}
//constructor简单写法
name='思聪' // 会层叠 覆盖掉继承的值
score=10000
hello(){
console.log( 'hello')
}
abc(){
console.log( 'abc ' )
}
}
let p3=new Teacher()
p3.say() // person的say
p3.name() // 思聪
原型链

任何一个实例对象通过原型链可以找到它对应的原型对象,原型对象上面的实例和方法都是实例所共享的。
一个对象在查找以一个方法或属性时,他会先在自己的对象上去找,找不到时,他会沿着原型链依次向上查找。
注意: 函数才有 prototype,实例对象只有有proto, 而函数有的proto是因为函数是 Function 的实例对象
本文介绍了JavaScript中构造函数的基本概念及其使用方式,并探讨了ES6中类的语法糖及其实现继承的方法。同时,文章还讲解了如何通过原型链实现实例间的属性和方法共享。
2201

被折叠的 条评论
为什么被折叠?



