美文网首页
javaScript面向对象—构造函数,原型和原型链

javaScript面向对象—构造函数,原型和原型链

作者: 小q | 来源:发表于2020-09-20 22:09 被阅读0次

构造函数

什么是构造函数

在javaScript中,用new关键字来调用的函数,称为构造函数。一般将构造函数的首字母大写。

什么时候使用构造函数

在创建大量拥有相同特性(属性)和行为(方法)的对象时,我们可以使用构造函数实现代码的复用。

构造函数的执行过程

  1. 在使用new关键字调用时,会创建一个新的内存空间,标记为类的实例
  2. 函数体内部的this指向该内存
  3. 执行函数体内的代码
  4. 默认返回this

原型与原型链

首先我们需要知道三个关键的属性,prototype__ proto __ ,constructor

prototype

我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象(函数的原型对象),这个对象的用途是包含可以由特定类型的的所有实例共享的属性和方法。并且prototype是一个对象数据类型的值。如果按字面意思理解,prototype就是通过调用构造函数而创建的对象实例的原型对象。

__ proto __

这是每一个JavaScript对象(除了 null )都具有的一个属性,叫proto,这个属性会指向该对象的原型。

constructor

原型对象中有一个属性constructor,它指向原来的函数对象

三者关系如下

img

原型链

原型链指的是一个实例对象,在调用属性和方法时会一次在实例本身,构造函数原型,构造函数原型的原型上去寻找,查找是否有对应的属性或方法,一直找到Object.prototype,如果还没有则返回null。其中__ proto__像链一样,串联起实例对象和原型。

img

值得注意的是原型链的真正形成靠的是__ proto__ ,而不是prototype。并且__ proto__ 指向的是构造函数的原型,而不是构造函数本身。

相关文章

  • 2018-11-22

    JavaScript的面向对象是基于constructor(构造函数)与prototype(原型链)的。 构造函数...

  • 22

    JavaScript的面向对象是基于constructor(构造函数)与prototype(原型链)的。 构造函数...

  • 面向对象2

    JavaScript的面向对象是基于constructor(构造函数)与prototype(原型链)的。 构造函数...

  • OOP-2

    JavaScript的面向对象是基于constructor(构造函数)与prototype(原型链)的。 构造函数...

  • 2018-11-22 面向对象3

    JavaScript的面向对象是基于constructor(构造函数)与prototype(原型链)的。 1.构造...

  • 构造函数和原型对象

    javascript使用构造函数和原型对象来进行面向对象编程 构造函数 在 JavaScript 中,构造器其实就...

  • JavaScript原型(二)

    原型链 在JavaScript原型(一)中,我们介绍了每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数...

  • JavaScript 常用继承方式

    JavaScript 常用继承方式 原型链继承构造函数,原型,实例之间的关系:每个构造函数之间都有一个原型对象,原...

  • 3-javascript 构造函数

    js中面向对象编程是基于构造函数(consstructor)和原型链(prototype)的。 构造函数作为对象的...

  • 原型链

    原型链图示 对象拥有原型和构造函数--proto--   原型constructor   构造函数 只有函...

网友评论

      本文标题:javaScript面向对象—构造函数,原型和原型链

      本文链接:https://www.haomeiwen.com/subject/jaqpyktx.html