从零开始学前端 - 22. JS类的概念及六种定义方式

作者: 她不美却常驻我心
博客地址: https://blog.csdn.net/qq_39506551
微信公众号:老王的前端分享
每篇文章纯属个人经验观点,如有错误疏漏欢迎指正。转载请附带作者信息及出处。

类的基本概念

首先我们要先来理解一下什么是类?

  类是对某一类具有共同特征的事物的抽象。在代码中我们可以将类看做是拥有相等功能和属性的集合。

什么是类的实例?

  实例就是类的对象。也就是根据类创建出来的一个个具体的对象,每个实例对象拥有相同的属性和方法,只是值不同。

接下来我们通过现实生活中的事物来举例理解一下:

  我们可以将所有的人类看作是一个 Human 类,那其中的某一个人,如 小明小红 就是 Human 类中的实例对象。

  如果将所有的动物看作是一个 Animal 类,那某一种动物,如 就是 Animal 类中的实例对象。

  我们也同样可以将动物 看作是一个 Dog 类,那么对 这个类而言,哈士奇金毛吉娃娃 就是具体的对象。

定义类的方法

  首先我们要先明确一点,JS 并不是真正的面向对象语言,其中并没有类的概念,ES6 新增的 Class 关键字,也只不过是一个语法糖而已,我们是通过原型链和继承等思想来将类模拟出来的。

构造函数 + 原型链

  定义类的方式有很多,但我们一般采用 构造函数 + 原型链 来实现一个类,为什么不推荐单纯使用构造函数的原因请查看上篇文章中:构造函数的缺点

function Animal(name, sex){
   
	this.name = name;
	this.sex = sex;
}
Animal.prototype.sayName = function(){
   
	alert(this.name);
}
var human = new Animal("小明", "男");

  同时我们可以使用对象的内置方法来对类进行相关的设置来实现静态类等的实现:

  • 设置类为只读:
 function Human(name, sex) {
   
    var props = {
   
        name: {
    value: name, enumerable: true, configurable: false, writable: false },
        sex: {
    value: sex, enumerable: true, configurable: false, writable: false },
    }
    if (this instanceof Human) {
   
        Object.defineProperties(this, props);
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值