为什么不可以写this.class

为什么不可以写this.class

buhuifdslflsdflsdfsdf

img

this.class 没有指明类模板,无法调用无参构造实例化

没有为什么、人家语法就是这样规定的吧、获取一个类的类对象只有三种方式、就是你的前三种

this指代当前对象,.class 必须用类名.调用。this又不是指代当前类名,当然不能了。

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7568702
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:类(class)中的访问权限问题
  • 除此之外, 这篇博客: Class 的基本语法中的 class 表达式 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 与函数一样,类也可以使用表达式的形式定义。

    const MyClass = class Me {
      getClassName() {
        return Me.name;
      }
    };
    

    上面代码使用表达式定义了一个类。需要注意的是,这个类的名字是Me,但是Me只在 Class 的内部可用,指代当前类。在 Class 外部,这个类只能用MyClass引用。

    let inst = new MyClass();
    inst.getClassName() // Me
    Me.name // ReferenceError: Me is not defined
    

    注释--引用错误:未定义Me

    上面代码表示,Me只在 Class 内部有定义。

    如果类的内部没用到的话,可以省略Me,也就是可以写成下面的形式。

    const MyClass = class { /* ... */ };
    

    采用 Class 表达式,可以写出立即执行的 Class。

    let person = new class {
      constructor(name) {
        this.name = name;
      }
    
      sayName() {
        console.log(this.name);
      }
    }('张三');
    
    person.sayName(); // "张三"
    

    上面代码中,person是一个立即执行的类的实例。