美文网首页
33.3、class与对象

33.3、class与对象

作者: 一土二月鸟 | 来源:发表于2020-08-03 22:48 被阅读0次

class

  • class是function函数的语法糖,class里的constructor相当构造函数,constructor外定义的方法相当于构造函数的原型上的方法。
  • class存在暂时性死区,在class前new class将会报错。
  • constructor直接定义的属性,属于实例化的私有属性,不存在于class的原型上。
  • 私有化方法的实现方式
const pmd = Symbol(); // 之所以用Symbol是因为其他模块引用class时,无法获取或修改方法名为Symbol()的方法,因为它是唯一的。
class Test {
  [pmd] () {
    console.log(111);
  }
  say () {
    this[pmd]();
  }
}
let t = new Test();
t.say(); // 1111
t.pmd(); // error
  • 静态方法兼容性较好。静态属性需要较高的浏览器版本。
  • 静态属性和方法无法通过实例化对象进行方法,只能通过类直接调用。
  • class 默认为严格模式
class t {
    a () {
      b = 1;
      // let b = 1; // 使用let或者var可以正常运行
    }
}
new t().a(); // VM2561:3 Uncaught ReferenceError: b is not defined
  • this指向
    • 如果将实例里的方法赋值给新的变量,单独调用,里面的this将会变成undefined,因为class内部默认的严格模式,严格模式下函数里的this指向undefined
    • 解决办法,将类的内部方法改为箭头函数,或者在构造器中将内部方法进行绑定指向当前this。

extends

  • extends为继承类的关键字,继承了某个类后,子类的实例可以获取到父类的所有属性和方法
  • 子类的构造器中必须执行super方法,代表运行一遍父类的构造器,并将父类的私有属性进行继承。super方法必须写到子类构造器的顶部。

相关文章

  • 33.3、class与对象

    class class是function函数的语法糖,class里的constructor相当构造函数,const...

  • typescript 中的class

    class 用来创建对象。TS中的class与面向对象语言(java,c++)中的class就比较相似了。 内容:...

  • Day9:Vue文档精读3——渲染&事件

    class与style的绑定 绑定HTML Class 对象语法 数组语法 用在组件上 绑定内联样式 对象语法 数...

  • Class 与 Style 如何动态绑定?

    Class 与 Style 如何动态绑定? Class 可以通过对象语法和数组语法进行动态绑定: 对象语法: 数组...

  • Vue学习笔记[2]

    一、Class与Style绑定 1 绑定HTML class #对象语法我们可以传给 v-bind:class 一...

  • Vue学习笔记3

    Class 与 Style 绑定 绑定 HTML Class 1.对象语法 绑定的数据对象可以不用内联定义在模板里...

  • vue重新起航(三)

    class与style绑定 用v-bind来绑定class和style 对象语法 1.class active是否...

  • ★12.类型信息

    Class 每个类都有Class对象。 获取Class对象的方式有:类名.class对象.getClass()Cl...

  • OC对象的分类

    instance(实例对象)instance class(类对象)class meta-class(元类对象)me...

  • Java中isAssignableFrom的用法

    class1.isAssignableFrom(class2) 判定此 Class1 对象所表示的类或接口与指定的...

网友评论

      本文标题:33.3、class与对象

      本文链接:https://www.haomeiwen.com/subject/sdnrrktx.html