js es6系列教程 - 新的类语法实战选项卡(详解)
发布时间 - 2026-01-11 03:04:31 点击率:次其实es6的面向对象很多原理和机制还是ES5的,只不过把语法改成类似php和java老牌后端语言中的面向对象语法.

一、用es6封装一个基本的类
class Person{
constructor( uName ){
this.userName = uName;
}
sayName(){
return this.userName;
}
}
是不是很向php和java中的类, 其实本质还是原型链,我们往下看就知道了
首先说下语法规则:
class Person中的Person就是类名,可以自定义
constructor就是构造函数,这个是关键字,当实例化对象的时候,这个构造函数会被自动调用
let oP = new Person( 'ghostwu' ); console.log( oP.sayName() ); //ghostwu console.log( oP instanceof Person ); //true console.log( oP instanceof Object ); //true console.log( typeof Person ); //function console.log( typeof Person.prototype.sayName ); //function console.log( oP.__proto__ === Person.prototype ); //true console.log( 'sayName' in oP ); //true console.log( Person.prototype );
第1行和第2行实例化和调用方法还是跟es5一样
第4行和第5行判断对象是否是类(Person)和Object的实例, 结果跟es5一样, 这个时候,我们肯定会想到Person的本质是否就是一个函数呢
第7行完全验证了我们的想法,类Person本质就是一个函数
第8行可以看到sayName这个函数其实还是加在Person的原型对象上
第9行还是验证了es5的原型链特点:对象的隐式原型指向构造函数的原型对象
第10行验证oP对象通过原型链查找到sayName方法
这种类的语法,被叫做语法糖,本质还是原型链
二、利用基本的类用法,封装一个加法运算
class Operator{
constructor( n1 = 1, n2 = 2 ){
this.num1 = n1;
this.num2 = n2;
}
add( n1 = 10, n2 = 20 ){
let num1 = n1 || this.num1, num2 = n2 || this.num2;
return num1 + num2;
}
}
var oper = new Operator();
console.log( oper.add( 100, 200 ) );
三、利用基本的类语法,封装经典的选项卡
css代码:
#tab div {
width: 200px;
height: 200px;
border: 1px solid #000;
display: none;
}
#tab div:nth-of-type(1) {
display: block;
}
.active {
background: yellow;
}
html代码:
<div id="tab"> <input type="button" value="点我1" data-target="#div1" class="active"> <input type="button" value="点我2" data-target="#div2"> <input type="button" value="点我3" data-target="#div3"> <input type="button" value="点我4" data-target="#div4"> <div id="div1">1</div> <div id="div2">2</div> <div id="div3">3</div> <div id="div4">4</div> </div>
javascript代码:
window.onload = () => {
class Tab {
constructor( context ) {
let cxt = context || document;
this.aInput = cxt.querySelectorAll( "input" );
this.aDiv = cxt.querySelectorAll( "div" );
}
bindEvent(){
let targetId = null;
this.aInput.forEach(( ele, index )=>{
ele.addEventListener( "click", ()=>{
targetId = ele.dataset.target;
this.switchTab( ele, targetId );
});
});
}
switchTab( curBtn, curId ){
let oDiv = document.querySelector( curId );
this.aDiv.forEach(( ele, index )=>{
ele.style.display = 'none';
this.aInput[index].className = '';
});
curBtn.className = 'active';
oDiv.style.display = 'block';
}
}
new Tab( document.querySelector( "#tab" ) ).bindEvent();
}
以上这篇js es6系列教程 - 新的类语法实战选项卡(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# js
# es6
# 温习Javascript基础语法之词法结构
# JavaScript语法约定和程序调试原理解析
# javascript中正则表达式语法详解
# javascript 高级语法之继承的基本使用方法示例
# 详解JavaScript 新语法之Class 的私有属性与私有方法
# JSON基本语法及与JavaScript的异同实例分析
# NodeJS模块与ES6模块系统语法及注意点详解
# JavaScript ES6中的简写语法总结与使用技巧
# 关于javascript事件响应的基础语法总结(必看篇)
# 深入理解JavaScript中的语法和代码结构
# 给大家
# 选项卡
# 面向对象
# 一个函数
# 不是很
# 希望能
# 可以看到
# 这个时候
# 自定义
# 这篇
# 小编
# 大家多多
# 加在
# 往下看
# 后端
# 知道了
# 只不过
# 隐式
# 肯定会
# function
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
*服务器网站为何频现安全漏洞?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
音乐网站服务器如何优化API响应速度?
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
如何注册花生壳免费域名并搭建个人网站?
在Oracle关闭情况下如何修改spfile的参数
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
网站页面设计需要考虑到这些问题
JavaScript如何实现音频处理_Web Audio API如何工作?
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
Swift中swift中的switch 语句
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
香港服务器如何优化才能显著提升网站加载速度?
PythonWeb开发入门教程_Flask快速构建Web应用
简单实现jsp分页
中山网站制作网页,中山新生登记系统登记流程?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
php结合redis实现高并发下的抢购、秒杀功能的实例
Python进程池调度策略_任务分发说明【指导】
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
用yum安装MySQLdb模块的步骤方法
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
Laravel如何升级到最新版本?(升级指南和步骤)
Swift中switch语句区间和元组模式匹配
高端网站建设与定制开发一站式解决方案 中企动力
如何在香港服务器上快速搭建免备案网站?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
制作电商网页,电商供应链怎么做?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
如何在不使用负向后查找的情况下匹配特定条件前的换行符
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
中国移动官方网站首页入口 中国移动官网网页登录
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
如何在万网利用已有域名快速建站?
如何在七牛云存储上搭建网站并设置自定义域名?
新三国志曹操传主线渭水交兵攻略
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
利用 Google AI 进行 YouTube 视频 SEO 描述优化
如何续费美橙建站之星域名及服务?
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
EditPlus中的正则表达式 实战(1)

