es6面向对象基础创建,继承原型链

42 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情 创建类

class Star{

constructor(uname) {

this.uname = uname;

}

sing() {

}

}

var ldh = new Star('刘德华');

 

constructor()方法是类的构造函数(默认方法),用于传递参数,返回实例对象,通过 new 命令生成对象实例时,自动调用该方法,如果没有显示定义,类内部会自动创建一个 constructor();

 

super 调用父类中的构造函数 也可以调用父类的普通函数

 

1).在 ES6 中类没有变量提升,所以必须先定义类,才能通过类实例化对象

2).类里面的共有的属性和方法一定要加 this 使用

3).类里面的 this 指向问题

4).consturctor 里面的 this 指向实例对象,方法里面的 this 指向这个方法的调用者

 

面向对象案例 利用 insertAdjacentHTML()可以直接把字符串格式元素添加到父元素中

input.select 文本框里的文字处于选定状态

 

静态成员和实例成员

1).实例成员就是构造函数内部通过 this 添加的成员,实例成员只能通过实例化的对象来访问(不可以通过构造函数来访问实例成员)

2).静态成员 在构造函数本身上添加的成员

静态成员只能通过构造函数来访问

构造函数原型对象 prototype

构造函数通过原型分配的函数是所有对象共享的

Javascript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象

注意:这个 prototype 就是一个对象,这个对象的所有属性和方法,都会被构造函数所拥有

可以把不变的方法,直接定义在 prototype 对象上,这样所有的对象的实例就可以共享这些方法

// 公共属性定义到构造函数里面,公共方法放到原型对象上

对象原型_proto_

对象系统自己添加一个__proto__ 指向构造函数的原型对象

ldh.proto = Star.prototype

constructor 属性

如果我们修改了原型对象,给原型对象赋值的是一个对象,则必须手动的利用 constructor 指回原来的构造函数