文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JavaScript ES6中class定义类的方法有哪些

2023-07-02 16:20

关注

这篇文章主要介绍“JavaScript ES6中class定义类的方法有哪些”,在日常操作中,相信很多人在JavaScript ES6中class定义类的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript ES6中class定义类的方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.声明类的两种方式:

class 关键字 类的声明

class Person{}

类表达式(不常用)

var People = class { }

那么 Person类的原型是什么?如下展示了原型和typeof中Person的类型

console.log(Person.prototype) // Person {}console.log(Person.prototype.__proto__) // {}console.log(Person.constructor) // [Function: Function]console.log(typeof Person) // function

2.class 类的构造函数

如果我们希望在创建对象的时候给类传递一些参数,这个时候应该怎么做呢?

示例代码如下:

// 类的声明class Person {    // 类的构造方法    constructor(name, age) {        this.name = name        this.age = age    }    foo () {        console.log(this.name)    }}var p1 = new Person('h', 19)console.log(p1)// Person { name: 'h', age: 19 }p1.foo() // h

当我们通过new关键字操作类的时候,会调用这个 constructor函数,并执行如下操作(假设new关键字新创建的对象为p1):

  • 在内存中创建一个对象

  • 将类的原型prototype赋值给创建出来的对象 p1.__proto__ = Person.prototype

  • 将对象赋值给函数的this:new绑定 this = p1

  • 执行函数体中的代码

  • 自动返回创建出来的对象
    **

3.class中方法定义

3.1 class 中定义普通的实例方法
class Person {    // 类的构造方法    constructor(name, age) {        this.name = name        this.age = age        this._address = '北京市'    }    eating () {        console.log(this.name + ' 正在eating~')    }    running () {        console.log(this.name + ' 正在running~')    }}var p1 = new Person('jam', 19)console.log(p1)p1.eating()p1.running()
3.2 class 类中定义访问器方法
class Person {    // 类的构造方法    constructor(name, age) {        this.name = name        this.age = age        this._address = '北京市'    }    // 类的访问器方法    get address () {        // 在这里可以设置拦截访问操作        console.log('获取呢')        return this._address    }    set address (newValue) {        // 在这里可以设置拦截设置操作        console.log('修改呢')        return this._address = newValue    }}var p1 = new Person('jam', 19)console.log(p1.address)p1.address = '天津市'console.log(p1.address)
3.3 类的静态方法(类方法)

类的静态方法就是在方法前加一个static关键字,该方法就成为了类的静态方法。
类的静态方法,不会被类的实例继承,而是直接通过类来调用。

小案例:使用类的静态方法完成随机生成Person实例

class Person {    // 类的构造方法    constructor(name, age) {        this.name = name        this.age = age        this._address = '北京市'    }        // 类的静态方法(也称为类方法)  创建对象随机生成一个名字小案例    static randomPerson () {        // 创建一个存储名字的数组        let names = ['jam', 'jak', 'jag', 'jao', 'jno']        // Math.random()生成一个0-1之间的数字,小数肯定是不对的        let nameIndex = Math.floor(Math.random() * names.length)        let name = names[nameIndex]        // 生成随机年龄        let age = Math.floor(Math.random() * 100)        // return随机生成的人物 姓名+ 年龄        return new Person(name, age)    }}

这里直接调用类的静态方法就可以 不需要使用new操作符创建创建实例对象

随机生成一个Person实例(附效果图)

// 随机生成一个  var p2 = Person.randomPerson()console.log(p2)

JavaScript ES6中class定义类的方法有哪些

随机生成多个Person实例(附带效果图)

// 随机生成多个for (let index = 0; index < 20; index++) {    console.log(Person.randomPerson())}

JavaScript ES6中class定义类的方法有哪些

到此,关于“JavaScript ES6中class定义类的方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯