当前位置: 首页 > news >正文

前端八股——JS高级学习

文章目录

  • 一键三连
  • 构造函数和原型
    • 原型(特别重要 必问)
      • 构造函数指向原型的属性prototype
      • 对象指向原型的属性
      • 原型指向构造函数的属性 constructor
      • 构造函数、实例、原型之间的关系
    • 原型链(重要)
    • js的成员查找机制
      • 原型对象this指向
  • 函数和闭包
    • 函数内this指向
    • JS严格模式
    • 闭包(超级重要)
      • 闭包的作用
  • 递归
  • 浅拷贝深拷贝

一键三连

如果您觉得有用的话,请点赞关注和收藏,您的点赞是我更新的动力!

构造函数和原型

在 ES6之前 ,对象不是基于类创建的,而是用一种称为构建函数的特殊函数来定义对象和它们的特征。
在这里插入图片描述

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

在这里插入图片描述
构造函数存在浪费内存的问题,每创建一个对象,它的函数都会被重新创建一遍,这样就浪费了内存空间,所以就引出了原型,用于解决内存浪费的问题。

原型(特别重要 必问)

构造函数指向原型的属性prototype

构造函数通过原型分配的函数是所有对象所共享的

JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象。这个 prototype 指向的对象就是原型,这个对象的所有属性和方法,都会被构造函数所拥有。

我们可以把那些不变的方法,直接定义在 prototype 所指向的对象(原型)上,这样所有对象的实例就可以共享这些方法,所以原型是用于存放构造函数公共方法的。

原型是什么?
是构造函数的属性prototype所指向的对象,这个对象叫原型

原型的作用时什么?
共享方法,让构造函数的方法可以被对象共享。

对象指向原型的属性

在这里插入图片描述

这里必须要明确的是这个指向的对象叫原型,这两个都只是指向它的属性而已,所以就直接记英文好了,原型就是指这个对象

原型指向构造函数的属性 constructor

在这里插入图片描述

构造函数、实例、原型之间的关系

在这里插入图片描述

原型链(重要)

在这里插入图片描述

js的成员查找机制

也是原型链的作用
在这里插入图片描述

原型对象this指向

构造函数中的this 指向我们实例对象。
原型对象里面放的是方法, 这个方法里面的this 指向的是 这个方法的调用者, 也就是这个实例对象.

函数和闭包

函数内this指向

在这里插入图片描述
改变函数内部 this 指向
call,apply,bind。这三个还需要再好好看看
在这里插入图片描述

JS严格模式

严格模式
在这里插入图片描述

闭包(超级重要)

在这里插入图片描述

闭包(closure)指有权访问另一个函数作用域中变量函数。 ----- JavaScript 高级程序设计
简单理解就是 ,一个作用域可以访问另外一个函数内部的局部变量
在这里插入图片描述
在这里插入图片描述

闭包的作用

闭包作用:延伸变量的作用范围。
在这里插入图片描述
闭包的作用案例:

在这里插入图片描述

递归

在这里插入图片描述

浅拷贝深拷贝

在这里插入图片描述

相关文章:

  • 【CSS系列】第二章 · CSS选择器
  • vue尚品汇商城项目-day04【27.分页器静态组件(难点)】
  • JavaScript技术干货第二弹,有需自取!
  • 华为OD机试用java实现 -【关联子串】
  • 走过最长的路是ChatGPT的套路,信过最真的话是Adobe的Firefly
  • 基于蓄电池进行调峰和频率调节研究【超线性增益的联合优化】(Matlab代码实现)
  • 华为OD机试用Python实现 -【打折买水果】
  • 深入浅出 Fast DDS网络协议(入门篇)
  • 【简陋Web应用2】人脸检测——基于Flask和PaddleHub
  • 基于springboot实现数码论坛系统设计与实现演示【附项目源码+论文说明】
  • 深入理解NLP中的文本匹配任务
  • 关于uview2.0计步器最大值赋值问题
  • Spring cloud 限流的多种方式
  • 面试时被问:为什么裁员只裁你,不裁别人,该怎么回答?
  • openEuler21.10部署nextcloud15,mariadb版本5.5.68,php版本7.0.33
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 2017 年终总结 —— 在路上
  • Android Volley源码解析
  • Flex布局到底解决了什么问题
  • Hibernate最全面试题
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • JSDuck 与 AngularJS 融合技巧
  • JS基础之数据类型、对象、原型、原型链、继承
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Octave 入门
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vuex 笔记整理
  • 编写高质量JavaScript代码之并发
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 工作手记之html2canvas使用概述
  • 理清楚Vue的结构
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 提醒我喝水chrome插件开发指南
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • # .NET Framework中使用命名管道进行进程间通信
  • # Kafka_深入探秘者(2):kafka 生产者
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #QT(TCP网络编程-服务端)
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (CPU/GPU)粒子继承贴图颜色发射
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二)学习JVM —— 垃圾回收机制
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot工单管理系统 毕业设计 964158