new操作符,原型还有继承!!!

new操作符是什么

new操作符一般放置于构造函数前面,用来创建一个基于该构造函数的实例。它的本质其实就是基于原型链的继承

在js中并不具备’类‘的概念,ES6 中的 class 属于一种语法糖,能够让开发者更好理解

在这里呢,我们创建的函数及内置的函数都可以叫做构造函数


每一种数据类型都有对应的内置构造函数

我们在实际开发中呢,经常使用字面量来定义这些构造函数,对于自定义函数我们也可以通过new操作符来为其创建实例

当一个普通函数作为构造函数时,其首字母需要大写,虽说这只是一种写法上的约定,就算你使用小写也没错,但并不推荐这么做,毕竟按照规范来做总没错

所以说白了,new 操作符的本质,仍属于基于原型的继承行为。新建的实例拥有其构造函数原型上的所有属性和方法

继承和原型

继承很好理解,其基本的目的,就是完成功能的复用,它包含 经典继承/混合继承 /组合式继承 。一般来讲,继承指的是面向对象的继承,在 JS 中,是没有类这个概念的,那么我们就需要来思考一些别的方法来进行继承了

 一、

当B构造函数继承A构造函数的时候,

在B构造函数中 借用父构造函数继承父构造函数的属性  代码:A.call(this,参数)

二、

通过 B构造函数的.prototype.方法名=A构造函数.prototype.方法名 来继承原型上的方法


就比如这样

而原型   也就是prototype  只有函数才会拥有此属性,它指向函数的原型对象 

JS 中的所有对象一定都有一个原型,并且继承了来自原型的所有属性和方法,而对象找到这个原型的路径就是 obj.__proto__,但需要知道的是,不是所有的对象都会有 prototype 属性,只有函数才有

你可能感兴趣的:(new操作符,原型还有继承!!!)