s6中class的一些基础知识和es5语法的对比
时间:2022-07-22
本文章向大家介绍s6中class的一些基础知识和es5语法的对比,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在es6中,出现了类(class)的概念,这极大的优化了我们的开发效率,今天我们就来说说js中的class。
首先es6的class,只是在es5的构造函数的基础上优化的语法糖,基本上class的所有的功能,在es5中都可以实现,只是es6使用起来比较便捷,清晰。
语法部分:
class vertical{
//静态属性
static company="Tencent";
//属性定义(实例,与constructor中的属性同属一个this)
varsion="1.0.0";
constructor(name,gender){
//实例属性
this.name=name;
this.gender=gender;
}
//方法定义(在prototype上)
fn1(){
console.log('fn1')
}
//静态方法
static fn2(){
console.log('fn2');
}
}
//设置静态属性company不可修改
Object.defineProperty(vertical,"company",{
writable:false
})
上述我们一个名为vertical的类,定义了一个静态属性company,所谓静态属性就是不用实例化(new)类就可以直接访问,静态方法也是同理。
在class中定义方法不需要使用function关键字,只需要直接写上函数名加上括号然后跟上函数体即可,比如我们定义了constructor和fn1两个方法。
这里需要注意的是,construator方法是构造方法,即在实例化类的时候,就会自动调用,即使我们不定义constructor方法,js引擎在实例化类的时候,也会自动加上,这个一个默认方法。
调用部分:
var obj = new vertical("jack","male");//实例化类
console.log(vertical.company)//输出Tencent
console.log(obj.name)//输出jack
console.log(obj.varsion)//输出1.0.0
obj.fn1();//调用原型函数
vertical.fn2();//调用静态方法
使用es5来实现上述代码中的类
function Vertical(name,gender){
this.verson="1.0.0";
this.name=name;
this.gender=gender;
}
vertical.company="Tencent";//静态属性
vertical.fn2=function(){ //静态方法
console.log('fn2');
}
//方法定义(prototype)
vertical.prototype.fn1=function(){
console.log('fn1');
}
这就是es5的语法,也就是使用构造函数,同样可以实现class的功能,只是没有class的语法那么清晰。
调用部分代码不变,可直接使用。
好了,今天关于es6的class的基础用法就到这,下一期我们来了解class的其他一些功能,以及如何继承。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode题目31:下一个排列
- LeetCode题目33:搜索旋转排序数组
- LeetCode题目34:在排序数组中查找元素的第一个和最后一个位置
- LeetCode题目35:搜索插入位置
- LeetCode题目36:有效的数独
- 你必须掌握动态规划——LeetCode题目5:最长回文子串
- 有意思的难题——LeetCode题目37:解数独
- 源码分析-分布式链路追踪:Skywalking存储插件能力-elasticsearch
- mongodb 4.0副本集搭建
- 浅析Kubernetes Pod重启策略和健康检查
- SpringBoot2 整合Ehcache组件,轻量级缓存管理
- 数据源管理 | 分布式NoSQL系统,Cassandra集群管理
- 【NPM库】- 0x03 - Express
- 数值微分|多项式的导数计算
- 让windows 10 内置ubuntu(WSL)成为扩增子分析生产力