首页 > 作文

Class语法简介

更新时间:2023-04-03 11:18:53 阅读: 评论:0

一、与 es 5 的对比

es 6 通过 class 来创建类,并实现类的继承。

具体创建方式如下:

// es 5function man(name, age) {// 在构造函数中添加每个实例的私有属性    this.name = name;    this.age = age;}man.prototype = {// 在原型中添加公共属性及方法    job: 'it',    sayname() {        console.log(this.name);    }}const xh = new man('xiaohong', 18);const xm = new man('xiaoming', 20);xh.sayname(); // xiaohongxm.sayname(); // xiaoming// es 6 class man {    constructor(na出门去钓鱼me, age){        this.name = name;        this.age = age;    }    sayname() {        console.log(this.name)    }}const xh = new man('xiaohong', 18);const xm = new man('xiaoming', 20);xh.sayname(); // xiaohongxm.sayname(); // xiaoming

仔细观察不难发现两者的区别及相似之处:

声明方式。

前者通过创建构造函数 man ,后者则是使用 class 声明一个类 man.

实例私有属性的添加。

前者通过在构造函数中实现,后者则是在 constuctor 方法中实现。不过他们的实现方式相同。

实例公共方法的添加。

前者通过原型 man.ptototype 来添加公共方法及属性,后者通过在 constructor 中直接添加私有方法(当然,也可以通过 prototype 方法),但,不能在 class 内部实例公共的属性,不过可以通过下面这种方法:

// 错误的做法class a { a = 'fasf'; }// 正确的做法class a {...}a.prototype.x = x;

调舞蹈考级证书用方式。

他们都是通过 new 方法调用来生成实例对象,但前者可以直接调用 man 方法,后者直接调用(man())则会报错。

其实, es 6 是 es 5 的一个语法糖而已,class 语法也只是将 es 5 的语法进行了封装,在 es 6 中,constructor 方法相当于构造函写一篇新闻数,默认返回实例对象。

而定义在 constructor 之外的方法,相当于在类的 prototype 中写方法。

二、回族简介this 指向

在 class 中,this 指向实例对象。

但是一旦在外部调用类中的方法,this 的指向就会发生变化,所以,我们通常会在 constructor 中通过 bind 方法来绑定当前 this.

class man {    constructot() {        this.sayname = this.sayname.bind(this);        }        sayname() {            console.log(this.name)   霍萱     }    }   class a {...}   a.prototype.x = x;

本文发布于:2023-04-03 11:18:52,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/5c8de0ca1def83bc2ae53d4f8965f980.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Class语法简介.doc

本文 PDF 下载地址:Class语法简介.pdf

标签:方法   实例   属性   方式
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图