💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
[TOC] ## 3.1继承 (extends) 现实中的继承:子承父业,比如我们都继承了父亲的姓。 程序中的继承:子类可以继承父类的一些属性和方法。 **语法:** class Father{ // 父类 class Son**extends**Father { // 子类继承父类 } ## 3.2 super 关键字 super 关键字用于访问和调用对象父类上的函数。可以调用父类的构造函数,也可以调用父类的普通函数 ![](https://img.kancloud.cn/bb/e3/bbe383b3577a3c733b191bcf04a9fd86_835x439.png) 注意 ![](https://img.kancloud.cn/7e/cf/7ecfc9a0d19db8a7a3f7de85d40df4a9_1022x39.png) ![](https://img.kancloud.cn/ec/b2/ecb2bffb62c77ec5c81a5b4311a50800_794x581.png) ### 三个注意点: 1.在ES6中类没有变量提升,所以必须先定义类,才能通过类实例化对象 2.类里面的共有属性和方法一定要加this使用. 3.类里面的this指向问题. 4\. constructor 里面的this指向实例对象,方法里面的this指向这个方法的调用者 ~~~ 1.双击事件:ondblclick 2.如果双击文字,会默认选定文字,此时需要双击禁止选中文字 window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty(); 3.appendChild不支持追加字符串的子元素, insertAdjacentHTML支持追加字符串的元素 ~~~ # 案例:面向对象版tab栏切换 **Js面向对象 动态添加标签页** ![](https://img.kancloud.cn/c7/e8/c7e83251d761633cefecf4853a983e80_1231x623.png) html ![](https://img.kancloud.cn/b0/fb/b0fb310b4c75ee6b21f996d02fda38f5_1219x715.png) ## **js功能需求:** 1.点击tab栏可以切换效果. 2.点击+号,可以添加tab项和内容项. 3.点击x号,可以删除当前的tab项和内容项. 4.双击tab项文字或者内容项文字,可以修改里面的文字内容. ## 案例分析 抽象对象: Tab对象 1.该对象具有切换功能 2.该对象具有添加功能 3.该对象具有删除功能 4.该对象具有修改功能 ## 代码实验 ![](https://img.kancloud.cn/8f/e2/8fe296e6bd6692d10102e20f2232510d_1137x681.png) ### 切换功能 ![](https://img.kancloud.cn/f8/08/f808275dd7a8c59dced6886d966a2237_1037x740.png) ![](https://img.kancloud.cn/b1/68/b1687d36007eef6b5cfb6276550fd860_1011x461.png) ### 添加功能 ![](https://img.kancloud.cn/c4/3a/c43ade8f4dff28b0101c6e1faf5a2ca7_1173x234.png) ![](https://img.kancloud.cn/95/b6/95b65c04c05761803fb7a740793e62fb_1220x215.png) ![](https://img.kancloud.cn/ca/93/ca9321401e60280f0850e7a024412c64_1112x452.png) 代码 ![](https://img.kancloud.cn/ae/2b/ae2bb9a0052f4cee58b7321d5d70be19_1151x644.png) ![](https://img.kancloud.cn/e0/0f/e00fcebcab418b073cb643328e89533a_1291x280.png) 内容![](https://img.kancloud.cn/ad/02/ad0278b010dff4a8ad85923cdbd53e2b_943x207.png)![](https://img.kancloud.cn/6a/dd/6adde33e0da33f956d5b8e55e69e9a21_1285x420.png) 解决bug ![](https://img.kancloud.cn/8c/12/8c12866c9fc7fe2d64ff2b176359fc03_1124x502.png) ![](https://img.kancloud.cn/05/25/05258cc17c24e393f75b8dfb403f3556_1045x530.png) ![](https://img.kancloud.cn/c4/ed/c4ed026d75e315a9b03e082c5c11c987_1306x418.png) ### 删除功能 ![](https://img.kancloud.cn/a6/5c/a65c37a785c7341de57c953704fc5bd5_847x254.png) 获取![](https://img.kancloud.cn/4a/d1/4ad169d1433ad8825856c0da38158cec_884x65.png) ![](https://img.kancloud.cn/84/a2/84a2c91aec1ba38cb88145f963df57c4_1021x546.png) ![](https://img.kancloud.cn/f1/7f/f17f31b37536da3f5ab4afd597a51046_1030x272.png) ![](https://img.kancloud.cn/9c/0b/9c0bfb2f82d26b5d087922164ff59d6c_1214x478.png) 优化:当我们删除的不是选中状态的li的时候,原来的选中状态li保持不变 ![](https://img.kancloud.cn/3e/17/3e17be200c5fec96d3b6604785a164da_1156x575.png) ### 切换编辑功能 ![](https://img.kancloud.cn/45/06/4506087275d2e5c8745ff18203f0946a_1073x402.png) 代码![](https://img.kancloud.cn/9c/f2/9cf23e247f325835d505988ee69e15e3_1215x628.png) ![](https://img.kancloud.cn/a7/2b/a72b36556424d0627b6c661089b349af_1269x494.png) ![](https://img.kancloud.cn/30/f8/30f8485c6c06694f51129fe1dafe5be7_961x415.png) 优化内容 ![](https://img.kancloud.cn/4b/3b/4b3b4c527bdd7df32f7926ed0022c61c_1076x445.png)