前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从构造器到类,为你揭密对象构造的全程(文末同样有福利)

从构造器到类,为你揭密对象构造的全程(文末同样有福利)

作者头像
学前端
发布2020-04-07 16:26:14
4940
发布2020-04-07 16:26:14
举报
文章被收录于专栏:前端之巅前端之巅

本文部分参考自《极客时间-JavaScript核心原理解析-第13讲》 如有侵权,请联系删除

构造器,是JavaScript中面向对象系统的核心概念之一。跟“props”相比,如果props是静态的结构,那么“构造器”就是动态的逻辑。

如果JavaScript没有了构造器,那么它就只是一个填满了许多数据的静态对象空间。这些空间之间没有关联,也不能衍生,更加不会交互。然而,这就是最初的JavaScript的所谓“面向对象系统”的雏形。

基于对象的JavaScript

为什么呢?因为JavaScript1.0的时代,也就是最早最早的JavaScript其实是没有继承的。

那么为什么没有继承的JavaScript⼀开始就能声称⾃⼰是“⾯向对象”的、“类似Java”的⼀⻔语⾔呢?其实这个讲法是前半句对,后半句不对。JavaScript和Java名字相似,但是语⾔特性却⼤是不同,这就跟北京的“海淀五路居”和“五路居”⼀样,差了得有20公⾥。

那前半句为什么是对的呢?JavaScript 1.0连继承都没有,为什么⼜能称为⾯向对象的语⾔呢?

JavaScript确实已经可以将函数作为构造器,并且在函数中向实例对象(一般就是this)抄写类声明的属性。在早期的面向对象理论里面,就已经可以称这个函数为类,而通过类所创造( new )出来的就是对象了。

所以,在有了类以后要,JavaScript就成为了一门面向对象语言,并且也是一门有类语言。

所以JavaScript从1.0开始就有类,在这个类(也就是构造器)中采用的是所谓“类抄写”的方案,将类似拥有的属性声明都抄到对象上,而这个对象,就是JavaScript中的this。

下面是示例代码

代码语言:javascript
复制
function Car(){
  this.name = "Car"
  this.color = "Red"
}

var a = new Car()
// code more..
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一起学前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档