JavaScript中创建类及类的继承

JavaScript中创建类及类的继承

JavaScript 是面向对象的语言,引用数据类型都是对象,包括函数也是对象,同时还可以通过 Object 对象自定义对象。
但是,和其他面向对象语言(如 Java 等高级语言)比,也有很大差异,JS 中没有类或接口的概念,即不能直接定义抽象的类,也不能直接实现继承。不过,为了编程的方便,我们可以在 JS 中模拟类和继承的行为
简单来说就是Javascript中没有类的概念,不过它可以用构造函数来实现类的功能,构造函数就是一个函数,一般构造函数名首字母大写
实际上,类是“特殊的函数”,就像你能够定义的函数表达式和函数声明一样,有两个创建类的方法:

  1. 方法1:类声明
class Star {
  constructor(name, age) {
	    this.name = name;
	    this.age = age;
  }
}
  1. 方法2:类表达式
var Star = class {
       constructor(name, age) {
            this.uname = name;
            this.age = age;
       }
}
console.log(Star.name);  //Star

在这里注意:函数声明和类声明之间的一个重要区别在于, 函数声明会提升,类声明不会。你首先需要声明你的类,然后再访问它,否则类似以下的代码将抛出ReferenceError

var p = new Star(); // ReferenceError
class Star {
	constructor(name, age) {
            this.uname = name;
            this.age = age;
    }
} //要先声明类,才能使用它

类必须使用new关键词来进行实例化

var ldh = new Star("刘德华", 55);
var zxy = new Star("张学友", 25);
console.log(ldh.name, ldh.age);  //刘德华,55
console.log(zxy.uname, zxy.age);  //张学友, 55
  1. 类的继承
//语法
          class Father{

          }
          class Son extends Father{
        		//子类继承父类
          }
class Father {
            constructor() {

            }
            money() {
                console.log(100);
            }  //给类中添加了方法
}
class Son extends Father {

}
var son = new Son();
son.money();  //100(继承了父亲的100元)
class Father {
            constructor(x, y) {
                this.x = x;
                this.y = y;
            }
            sum() {
                console.log(this.x + this.y);
            }
}
class Son extends Father {
            constructor(x, y) {
                super(x, y);
                //super关键字用于访问和调用对象父类上的函数,可以调用父类的构造函数,也可以调用父类的普通函数
            }
}
var son = new Son(1, 2);
son.sum();

猜你喜欢

转载自blog.csdn.net/Angela_Connie/article/details/110536716