ES6 中类的定义

简介: ES6 中类的定义
// 1、类的基本定义
class Parent {
    constructor(name = "小白") {
        this.name = name;
    }
}
// 2、生成一个实例
let g_parent = new Parent();
console.log(g_parent); //{name: "小白"}
let v_parent = new Parent("v"); // 'v'就是构造函数name属性 , 覆盖构造函数的name属性值
console.log(v_parent); // {name: "v"}
// 3、继承
class Parent {
    //定义一个类
    constructor(name = "小白") {
        this.name = name;
    }
}
 
class Child extends Parent {}
 
console.log("继承", new Child()); // 继承 {name: "小白"}
// 4、继承传递参数
class Parent {
    //定义一个类
    constructor(name = "小白") {
        this.name = name;
    }
}
 
class Child extends Parent {
    constructor(name = "child") {
        // 子类重写name属性值
        super(name); // 子类向父类修改 super一定放第一行
        this.type = "preson";
    }
}
console.log("继承", new Child("hello")); // 带参数覆盖默认值  继承{name: "hello", type: "preson"}
// 5、ES6重新定义的ES5中的访问器属性
class Parent {
    //定义一个类
    constructor(name = "小白") {
        this.name = name;
    }
 
    get longName() {
        // 属性
        return "mk" + this.name;
    }
 
    set longName(value) {
        this.name = value;
    }
}
 
let v = new Parent();
console.log("getter", v.longName); // getter mk小白
 
v.longName = "hello";
console.log("setter", v.longName); // setter mkhello
// 6、类的静态方法
class Parent {
    //定义一个类
    constructor(name = "小白") {
        this.name = name;
    }
 
    static tell() {
        // 静态方法:通过类去调用,而不是实例
        console.log("tell");
    }
}
 
Parent.tell(); // tell
// 7、类的静态属性:
 
class Parent {
    //定义一个类
    constructor(name = "小白") {
        this.name = name;
    }
 
    static tell() {
        // 静态方法:通过类去调用,而不是实例
        console.log("tell"); // tell
    }
}
 
Parent.type = "test"; // 定义静态属性
 
console.log("静态属性", Parent.type); // 静态属性 test
 
let v_parent = new Parent();
console.log(v_parent); // {name: "小白"}  没有tell方法和type属性
相关文章
|
6月前
|
JavaScript
es5和es6的区别
es5和es6的区别
55 0
|
6月前
|
存储 JavaScript 前端开发
ES6学习(10)ES6的继承
ES6学习(10)ES6的继承
|
1月前
|
安全
ES5/ES6 的继承除了写法以外还有什么区别
ES5 和 ES6 的继承主要区别在于实现机制和语法糖。ES5 通过原型链和构造函数模拟类的继承,而 ES6 引入了 class 关键字,使继承更加直观和简洁,支持 super 调用父类方法,提升了代码可读性和维护性。
|
1月前
|
前端开发 网络架构
ES6对函数做了哪些扩展?
本文首发于微信公众号“前端徐徐”,介绍了 ES6 中函数参数的默认值、rest 参数、严格模式、name 属性、箭头函数、尾调用优化等新特性,并详细解释了各个特性的使用方法和注意事项。同时,还介绍了 ES2017 和 ES2019 中关于函数的一些改进,如函数参数尾逗号、`Function.prototype.toString()` 方法的修改以及 `catch` 语句参数的省略。
9 1
|
6月前
|
前端开发
es6的一些方法
es6的一些方法
33 0
|
6月前
ES5、ES6类的定义
ES5和ES6都支持类的定义,但ES6引入了更简洁的语法。在ES5中,类是函数,方法绑定在原型上;而ES6使用`class`关键字,构造方法为`constructor`,方法直接定义在类内。ES6的类继承使用`extends`关键字,子类需调用`super`初始化父类属性。示例展示了Person类及其Student子类的定义和方法调用。
38 1
|
6月前
|
前端开发 JavaScript API
ES6和ES5的区别
ES6和ES5的区别
47 0
|
6月前
|
JavaScript 前端开发
ES6 函数
ES6(ECMAScript 2015)是 JavaScript 的一个重要版本,它引入了许多新的特性和语法。其中,函数是 ES6 的一个重要组成部分,它提供了许多新的函数语法和特性,如箭头函数、函数参数默认值、函数解构赋值等。
41 8