分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

js中的class

发布时间:2023-09-06 02:32责任编辑:白小东关键词:jsclass

js中的class

  1. 类写法

    class SuperClass { ???constructor(option) { ???????this.a = option; ???} ???fn() { ???????console.log(this.b); ???} ???static staticMethod() { ???????console.log("静态方法只能通过类调用") ???} ???set sa(value){ ???????this.a = value; ???} ???get sa() { ???????return this.a; ???}}class SubClass extends SuperClass { ???constructor(option) { ???????super(option.a); // 调用父类的构造函数 ???????this.b = option.b ???}}const sub = new SubClass({a: "aaa", b: "bbb"});sub.sa = "aa"console.log(sub.sa); // aasub.fn(); // bbbSubClass.staticMethod(); // 静态方法只能通过类调用
  2. 处理private数据

    方式一:使用Symbols ???symbol是唯一的并且是不可变的数据类型 ???class Demo { ???????constructor(option) { ???????????const key = Symbol("key"); ???????????this[key] = option; ???????????this.fn = () => { ???????????????console.log(this[key]) ???????????} ???????} ???} ???const demo = new Demo("aaa"); ???console.log(demo[Symbol("key")]); // undefined ???demo.fn(); // aaa方式二:使用WeakMaps ???WeakMaps键名是弱引用类型,键值可以是任意类型 ???如果键没有被其他强类型引用,会自动被垃圾回收掉 ???const key = new WeakMap(); ???class Demo { ???????constructor(option) { ???????????key.set(this, option); ???????????this.fn = () => { ???????????????console.log(key.get(this)) ???????????} ???????} ???} ???const demo = new Demo("aaa"); ???console.log(key.get[demo]); // undefined ???demo.fn(); // aaa

js中的class

原文地址:https://www.cnblogs.com/ye-hcj/p/10350581.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved