最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • javascript 类的概念解释

    正文概述 掘金(李重楼)   2021-05-17   578

    废话

    在我刚开始接触编程的时候,授业的老师就讲到了js中的类, 一大堆专业术语,对于一个编程小白无异于天书,而且每一个专业术语背后都是一套概念知识体系,当时听得迷糊,如今我想我弄明白了一二了。

    抽象

    抽象是从众多的事物中抽取提炼出共同的、本质性的特征,而舍弃其非本质的特征的过程。

    这是毕加索画的牛,可以看到,从最开始的最直观具象的牛到最后如同简笔画一样的牛,就是一个抽象的过程。

    javascript 类的概念解释

    为什么?

    最后一张简笔画一样的牛,为什么它一眼望去就是一头公牛?因为毕加索从一开始的纤毛毕现到只勾勒了几条线都让我们感受到了牛的特征:壮硕的体态,长有犄角,性征等特点一点没少。所以我们认为它是只牛。至少不是马。

    编程中,我们也是这样去掉牛的“肉”,“毛发”,留下了牛的特征,从而达到抽象。

    可能解释的有点玄学了, 但是长篇大论的复制已有的解释,我觉得没什么意思,至少以后你回想起什么是抽象,你会想起毕加索的牛了

    类是对现实生活中一类具有共同特征的事物的抽象。例如:

    • 人类
    • 鸟类
    • 爬行类
    • 等等

    可以看到,无论是人类还是鸟类,当我们提起某一个类时,我们能够知晓它表示的是什么。因为我们学习过相关的知识,生物课上老师告诉过我们生物学家根据动物其生物特征,习性对其进行了分类。

    当然,在编程领域类是具有相同属性服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。

    在上面的定义中,我加粗了“属性”和“服务”两个词。

    • 属性其实就是数据,以人类为例:性别 是个属性,它的值可以是男或者女。
    • 服务是行为方法、或者说动作,还是以人为例:行走坐卧,吃喝拉撒,这些都是行为动作。

    实例

    不得不提一下实例,类是抽象的,不具体的,含有属性和方法。但是当你说让“人类”吃苹果、喝一杯水是不现实的,因为“人类”是一个大集合,不是具体的某人。 而实例就是那个具体的某人,它存在具体的属性,方法,例如:法外狂徒张三,男,25岁,这些都是属性,他可以吃苹果、喝一杯水,这些是行为。

    实例是类的具象化,想想毕加索的牛,毕加索抽象到了寥寥数笔,概括了牛的特征,现在我们要根据概括的特征添上血肉皮毛。

    实例化

    通常把用类创建对象的过程称为实例化。

    类的代码示例

    es5代码表示为:

    function Person(name, sex) {
        this.name = name;
        this.sex = sex;
    };
    
    Person.prototype.say = function() {
        console.log(this.name + '是' + this.sex + '的。');
    }
    let instance = new Person("江疏影", "女"); //类的实例化
    

    在ES5中定义类如上,生成实例对象的传统方法是通过构造函数Person 就是一个构造函数,这种写法跟传统的面向对象语言(比如 C++ 和 Java)差异很大。

    ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过 class 关键字,可以定义类。 es6代码表示为:

    class Person(name, sex) { //这个是类
        constructor(name, sex) {
            this.name = name;
            this.sex = sex;
        }
        say() {
            console.log(`${this.name}是${this.sex}的。`)
        }
    }
    
    let instance = new Person("江疏影", "女"); //类的实例化
    

    在ES6中定义类如上,可以看到里面有一个 constructor 方法,这就是构造方法,而this关键字则代表实例对象。也就是说,ES5 的构造函数 Person,对应 ES6 的Person类的构造方法

    结语

    到此我们已经知道什么是类了,类是具有相同属性方法的一组对象集合(es6的表现更能说明对象集合),可以实例化为具体的实例。

    参考

    • 阮一峰 ECMAScript 6 (ES6) 标准入门教程 第三版
    • 抽象 (科学学概念)
    • 设计模式

    下载网 » javascript 类的概念解释

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元