「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」。
类
-
在 ES6 中新增加了类的概念,可以使用 class 声明一个类,之后以这个类来实例化对象。类抽象了对象的公共部分,它泛指某一大类(class)对象特指某一个,通过类实例化一个具体的对象
-
Class类实现了在JavaScript中声明一个新的类, 并通过构造函数实例化这个类的机制。通过使用Class.create()方法, 你实际上声明了一个新的类, 并定义了一个initialize()方法作为构造函数, 一旦你在这个声明的类的prototype中实现了改该方法, 你就可以使用new操作符来创建并实例化一个类。
-
需要注意的是在js中,从es6开始引进class,根本上是基于js中已经存在的原型继承的语法糖,class语法并没有引进一种新的面向对象的继承机制
-
class事实上是一种特殊的funcion,就像可以定义funcion表达式和funcion声明一样,定义一个class,可以使用class关键字加上类名。需要注意的是,funcion声明和class声明有一个重要的区别:funcion声明是hosting(状态提升)的,而class不是,class需要先声明再使用。
(1) 创建类
语法:
//步骤1 使用class关键字
class Person {
// class body
}
//步骤2使用定义的类创建实例 注意new关键字
var xx = new Person();
举个栗子:
class Person {
constructor(uname, age) {
this.uname = uname;
this.age = age;
}
}
// 2. 利用类创建对象 new
var p1 = new Person('张三', 18);
console.log(p1);
console.dir(Person);
运行结果和使用构造函数方式一样。
补充:
-
javascript是面向对象的,怎么体现javascript的继承关系?使用prototype原型来实现。
-
javascript语言实现继承机制的核心就是 (原型),而不是Java语言那样的类式继承。Javascript解析引擎在读取一个Object的属性的值时,会沿着(原型链)向上寻找,如果最终没有找到,则该属性值为undefined;如果最终找到该属性的值,则返回结果。