
Class类
JavaScript语言的传统方法是通过构造函数,定义并生成新对象。function既是对象,对象既是function,没有class的概念。ES6提供了更接近传统语言的写法,比如:JAVA、PHP等后端语言,引入了Class( 类 ) 这个概念,作为对象的模板。通过class关键字,可以定义类。可以实现:单例模式、访问器属性、静态方法、extends继承
ES5类定义写法
//定义类
function Person(name,age){
//属性
this.name=name;
this.age=age;
}
//定义方法
Person.prototype.show=function(){
console.log(this.name,this.age);
}
//使用
var p1=new Person("张三",30);
p1.show();
var p2=new Person("李老五",35);
p2.show();
ES6写法
class Person{
//构造函数
constructor(name,age){
this.name=name;
this.age=age;
}
//方法
show(){
console.log(this.name,this.age);
}
}
//使用
var p1=new Person("张三",30);
p1.show();
var p2=new Person("李老五",35);
p2.show();
表达式形式定义
let Person = class {
constructor(name, age) {
this.name = name;
this.age = age;
}
show() {
console.log(this.name, this.age);
}
}
//使用
var p1=new Person("张三",30);
p1.show();
var p2=new Person("李老五",35);
p2.show();
单例模式
//单例模式
let Person=new class{
constructor(name,age){
this.name=name;
this.age=age;
}
}("张三",30);
console.log(Person.name)
监听属性值变化
class Person{
//构造函数
constructor(name,age){
this.name=name;
this.age=age;
this.ageText="";
}
set age(val){
if(val>18){
this.ageText="成年人";
}else{
this.ageText="未成年";
}
}
get age(){
return this.ageText;
}
}
var p1=new Person("张三",30);
p1.age=10;
console.log(p1.age);
静态方法
class Person{
static show(){
console.log("静态调用方法");
}
}
Person.show();
继承
//继承
class Person{
constructor(name){
this.name=name;
}
run(){
console.log(this.name+"在跑步");
}
}
class SuperMan extends Person{
constructor(name){
super(name);//调用父类的构造函数
}
}
let s1=new SuperMan("夏松");
s1.run();
class Person{
constructor(name){
this.name=name;
}
run(){
console.log(this.name+"在跑步");
}
}
class SuperMan extends Person{
constructor(name){
super(name);//调用父类的构造函数
}
run(){
super.run();
console.log(this.name+"在唱歌")
}
}
let s1=new SuperMan("夏松");
s1.run();
版权提示
1.除了标识原创之外,其他可能来源于网友的分享,仅供学习使用2.如您发现侵犯了您的权利,请联系我们删除
3.转载必须带本文链接,否则你将侵权
4.关于会员或其发布的相关内容均由会员自行提供,会员依法应对其提供的任何信息承担全部责任,本站不对此承担任何法律责任
0 人点赞
评论区 (0)
最新视频教程
-
-
黑白课堂
- Laravel6 全套入门实战
- 4643 2
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4557 5
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4443 0
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4066 0
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4065 0
-
最新视频课程
-
Laravel 消息通知使用
黑白课堂
284621 03年前
-
ace.js 打造一款属于你的 Web 编辑器,入门文档。
黑白课堂
15257 04年前
-
Laravel 实现 RBAC 权限管理功能 Permission 包操作
黑白课堂
14111 04年前
-
微信小程序等比例图片压缩上传,100%可用,非官方压缩方法
黑白课堂
12163 14年前
-
宝塔面板强制绑定账号修改为不强制绑定方案
黑白课堂
11348 02年前
-
wap2App 入门讲解,100%速成,全面为你讲解。
黑白课堂
9187 04年前
-
Laravel 设置请求头 header 参数
黑白课堂
8314 03年前
-
Laravel 的 PhpSpreadsheet 包入门
黑白课堂
8309 04年前
-
Laravel 表格操作 Maatwebsite/Laravel-Excel 3.1 最新版本的操作指南
黑白课堂
8287 04年前
-
Linux 下如何监听我们的脚本是否掉线了
黑白课堂
7550 02年前
-
KongQi Laravel Admin2.0 文档安装
黑白课堂
3906 23年前
-
KongQi Laravel admin2.0 layui admin 版本序言
黑白课堂
3330 03年前
-
易语言入门拖入文件导入到超级列表框表格内
哪吒
8376 13年前
-
易语言入门易语言定时任务模块
哪吒
6464 03年前
-
postman 使用手册cookie 使用
哪吒
4971 03年前
-
谷歌浏览器插件教程proxy 代理
哪吒
4506 01年前
-
易语言入门判断文件夹是否存在的方法
哪吒
4217 02年前
-
易语言入门TAB 标签页制作
哪吒
4192 03年前
-
Visual Studio Code 入门和使用教程插件安装使用
哪吒
4122 13年前
-
Visual Studio Code 入门和使用教程安装下载
哪吒
4092 03年前
