JavaScript ES6 class类(this关键字)总结

本文总结了在JavaScript ES6的class类中处理this关键字的一些常见方法,包括利用箭头函数、临时变量、bind以及如何统一绑定this。讨论了在jq、原生js和class中this的不同含义,并提供了在复杂场景下解决this冲突的实践方案。
摘要由CSDN通过智能技术生成

ES6实现了class关键词,使js模块化编程更加简洁, 下面是关于class继承的一小点总结, 详细请参照这位大神的详细介绍(点击)

具体class的原理这边就不写了, 看上面的链接即可, 这边只是个人的一点总结吧

class类的this

在JS中this关键字用的非常多, jq中的this, 原生js的this和class中的this代表的含义都不一样, 问题就出现在如果这3中情况都用在一起,怎么去区分就是一个大问题了,用的不好,就像以下代码, 就会报错!

class Test{
    constructor(){
        this.age = 10;    // 类属性
        $('.btn').click(function(e){
            alert(this.age);
        });
    }
}

这样用new出实例之后直接报错的,  因为在jq的click中this指的是当前被点击的Element, 在内部的回调函数中无法访到类的属性,这样就造成了混淆, 根据别人的资料总结了 一个可用的简单方法来区分this

方法1: 利用ES6的=>来写回调函数

class Test{
    constructor(){
        this.age = 10;    // 类属性
        $('.btn').click((e)=>{
            alert(this.age);
 
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ES6引入了class关键字,使得JavaScript可以更方便地使用面向对象编程。下面是ES6 class的使用介绍: 1. 定义: 使用class关键字定义一个名通常首字母大写。可以包含构造函数、方法和属性。 ```javascript class MyClass { constructor() { // 构造函数 } method() { // 方法 } property = value; // 属性 } ``` 2. 创建对象: 使用`new`关键字创建的实例对象。 ```javascript const myObject = new MyClass(); ``` 3. 构造函数: 构造函数是一个特殊的方法,用于初始化对象的属性。在创建对象时自动调用。 ```javascript class MyClass { constructor(name) { this.name = name; } } const myObject = new MyClass("Alice"); console.log(myObject.name); // 输出 "Alice" ``` 4. 方法: 的方法定义在的原型上,可以通过实例对象调用。 ```javascript class MyClass { method() { console.log("Hello"); } } const myObject = new MyClass(); myObject.method(); // 输出 "Hello" ``` 5. 继承: 使用`extends`关键字实现的继承。子可以继承父的属性和方法,并可以添加自己的属性和方法。 ```javascript class ChildClass extends ParentClass { constructor() { super(); // 调用父的构造函数 } childMethod() { // 子的方法 } } ``` 6. 静态方法: 使用`static`关键字定义静态方法,静态方法属于本身而不是实例对象。 ```javascript class MyClass { static staticMethod() { console.log("Static method"); } } MyClass.staticMethod(); // 输出 "Static method" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值