详解JavaScript中的对象、原型链、constructor、super以及this

 * 在MDN中关于继承与原型链的解释中,有这样一句话 : 对于使用过基于类的语言 (如 Java 或 C++) 的开发者们来说,JavaScript 实在是有些令人困惑 —— JavaScript 是动态的,本身不提供一个class的实现。(我觉得说的非常对,我就很难理解JavaScript中继承以及它为什么需要修改this的指向,因此我希望通过这样一篇文章来弄懂我的困惑。再次之外,能够给别人一些启发,我将十分高兴)

一.详解关于ES6中的对象以及对象的构造

  对象:JavaScript是基于对象的脚本语言,就是说JavaScript中也有对象的概念。在任何语言中对象的含义都是相同的:为一系列特征(名词 - 属性)和动作(动词 - 函数)的集合。这几乎没什么解释。但是JavaScript是解释型语言,他和Java这种面向对象的语言实现对象的方式是不同的。

  JavaScript中对象构造方法

  1.利用{}字面量创建对象 -只是对象,不能充当原型(下面解释)

const car = {
    color: 'red';
    run:function(){
        return '这车可以跑啊!';
    }
}

  2. 构造一个对象,使用new 关键字实例化一个对象

  使用new关键字构造一个对象,首先要使用function或者class关键字创造一个对象模板,这在JavaScript中被称作原型。举个例子,我要创建车对象,如果我只是随便造一个车的话,那么我可以是方法一创建对象,但如果我想要制造一堆车怎么办呢?我必须先画一个图纸或者先建立一个工厂。那么 function Car(){} 或者 class Car{}就是这样的过程。他们两的不同,我们在后面讨论。因为说道这里,我们必须要首先讨论原型链,见下图。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值