专栏首页前端之巅从构造器到类,为你揭密对象构造的全程(文末同样有福利)

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

本文部分参考自《极客时间-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。

下面是示例代码

function Car(){
  this.name = "Car"
  this.color = "Red"
}

var a = new Car()
// code more..

本文分享自微信公众号 - 一起学前端(xueqianduan),作者:来源网络

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 在10分钟内概览Svelte 3的基础知识

    Svelte在2019年中成为后起之秀,接下来,让我们来简单的了解一下,这个新的框架。

    学前端
  • 使用Ionic React实现的无限滚动效果

    ionic start infiniteScroll tabs --type react

    学前端
  • JS中的Callback VS Promise

    如果你不熟悉JavaScript,并且很难理解Promise的工作原理,希望本文能帮助您更清楚地了解Promise。话虽如此,本文针对的是那些对Promise...

    学前端
  • 企业级JavaScript:机遇,威胁与解决方案[每日前端夜话0x8E]

    Enterprise JavaScript: Opportunities, Threats, Solutions

    疯狂的技术宅
  • 【干货】jquery_07操作CSS

    jQuery是目前最流行的JavaScript函数库之一,对JavaScript进行了封装。它并不是一门新语言,而是将常用的、复杂的操作进行函数化封装,直接调用...

    用户1730674
  • 学习笔记,JavaScript学习笔记(一)

    console.log("hello world!") 同样打印输出,不同是没有烦人的弹窗出现

    二爷
  • JavaScript入门

    在Web开发日益成熟的过程中,PHP和JavaScript已经成为了Web工程师的必备技能。前者因为LAMP的经典组合,而后者JavaScript在经历过Jav...

    八哥
  • 每个程序员都需要学习 JavaScript 的7个理由

    每个程序员都需要学习 JavaScript 的7个理由 最近在和招聘经理交流现在找一个好的程序员有多难的时候,我渐渐意识到了现在编程语言越来越倾重于JavaS...

    用户1289394
  • 2019 年 JavaScript 现状调查报告火热出炉

    StateOfJS 发布了 2019 年的 JavaScript 现状调查报告。今年覆盖了 21,717 位受访者。客户数据可视化专家 Amelia Watte...

    GitHubDaily
  • 如何正确学习JavaScript(写给非JavaScript程序员和编程新手)

    目录 不要这样学习JavaScript 本课程资源 1~2周(简介,数据类型,表达式和操作符) 3~4周(对象,数组,函数,DOM,jQuery) JavaSc...

    前朝楚水

扫码关注云+社区

领取腾讯云代金券