javascript - 求问js 中的类究竟是什么意思?
PHP中文网
PHP中文网 2017-04-11 11:00:18
[JavaScript讨论组]

新人一枚 求问js中的类到底是什么意思?网上看了资料也是模棱两可,希望大神来解答下,最好结合例子说明下,谢谢了!

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
大家讲道理

OK,这里有一个问题需要先确认,你是对javascript中的类概念有疑问?还是仅对“类”这个概念有疑问?

如果是不了解javascript中的类,那我可以告诉你,他和其他OOP(面向对象编程)语言的类概念别无二致,仅语法上略有不同(这个我相信是好理解的,不同语言的语法当然不同),而且在javascript自身发展的过程中,类的声明方式也有变化,下面举例:

早期javascript中想要声明一个类,是一种被称为prototype-based的语法风格(个人觉得略诡异),但这种方式一直到现在仍然是主流写法:

var Human = function(gender){
    this.gender = gender;
};

Human.prototype.say = function(){
    console.log('i am ' + gender + ', i say dirty words');
};

然后在ES2015标准诞生后,我们可以用更接近其他OOP语言风格的方式声明类了(明显更容易让程序员接受啊):

class Human {
    constructor(gender) {
        this.gender = gender;
    }
    
    say() {
        console.log(`i am ${gender}, i say dirty words`);
    }
}

注,以上两种声明方式的效果/作用是一样的哦,不要被声明方式的不同所迷惑

OK,现在再回到最早的问题,如果你就是压根也不清楚“类”是什么?那我还是建议你先看看OOP中对类的诠释,譬如:Class

这篇解释,在开头的描述我觉得还是很通俗的,他说:

在现实生活中,你常常会发现很多个体事物都具备相同的属性(相同类型)。举个栗子,世界上有超级多的自行车,都长的差不多。每个自行车都是按照相同/相似的图纸制造的,而且都有几乎相同的零件。如果用OO(面向对象)语言来说,你的自行车就是就是一种叫bicycles的类的一个实例(instance)。这个类,就是我们用来生产/制造自行车用的图纸。

我翻译的可能不够好,但意思已经足够通俗,希望对你理解问题有帮助

巴扎黑

跟 c 语言的类,一样一样的吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号