构造函数,原型对象,

构造函数

概念:如果函数中的逻辑生成一个对象的并将其返回,我们就将其称之为构造函数
回顾,普通函数,如下图
在这里插入图片描述
(一)、构造函数严格意义就是用来生对象的
示例:用普通函数模拟的构造函数
在这里插入图片描述

(二)、构造函数是必须通过new这个关键字调用的(要改变this的指向)也称为 实例化一个对象(执行这个函数,生成一个对象),它的作用就是在普通函数中替我们生成了一个对象,并在最后给我们retrun出去,也就是如下红线标注所示!去掉红圈部分,就是一个标准的构造函数,声明构造函数是首字母要大些!
在这里插入图片描述
同时在函数中也可以 给对象附函数,如图
在这里插入图片描述

原型(原型对象prototype)

理解定义:在构造函数中,每一个构造函数都有prototype属性,每次实例化这个对象时(也就是用new调用时),都会有这个构造函数自带的属性,每个new的实例对象都会带有(如上图中的this.type),这样会占内存的,所以在每一个构造函数中都会有原型对象prototype。 是构造函数 构造加工对象加工厂的后院。
在这里插入图片描述

原型对象prototype 是用来存放构造函数共有的属性的,在每次new的实例化对象都会带有这个公共属性,如何给构造函数添加(比如这个构造函数是person),如下图: 添加成功后,每个实例化对象都会有 type了,比如
下图中 wdw.type 结果就是 “灵长类”
在这里插入图片描述

在js中已经规定好了,一个实例化对象在调用属性和方法是,先在这个对象中找,如果在没有的情况下,会自己向构造函数原型对象中找,如果有,会直接使用.

总结

构造函数,实例化对象,原型原型对象的关系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在三者中的关系可以如上图所示,构造函数的prototype 的指向与实例化对象的__proto__指向,是相同的,都是指向了原型对象(加工厂的后院),而实例化对象的constructor的指向则是这是构造函数的本身(不包括原型对象 )let wdw = new persion() 。。。。 console. log (wdw.constructor)
如图下所示,也就是构造函数是所定义在对象自身的属性
在这里插入图片描述

用途

(一)、对js本地对象做扩展
在js中万物皆对象,只要是 点 什么的,点前面的就是个对象,比如字符串, let str = “在错误的时间喜欢上了想守护一辈子的你” 这个str 就是个对象,是字符串对象 str.replace("")! 比如给字符串添加个反转的方法,如下图:
在这里插入图片描述

面试提问

原型原型链的理解

在这里插入图片描述
谢谢各位大佬的观看,如有不足,多多指教,记得点点关注呦!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值