js中什么是闭包?什么是原型链?什么是作用域?

**闭包:**即重用变量,又保护变量不被篡改的一种编程方式。

**本质:**外层函数作用域对象因为被内层函数应用着无法释放,形成了闭包。

闭包的三个步骤:

  1. 外层函数包裹内层函数和要保护的变量
  2. 外层函数将内层函数返回到外部
  3. 使用者调用外层函数获得返回的内存函数对象,保存在一个变量中,今后可以反复使用。

**闭包的缺点:**内存泄漏

**闭包的释放:**把外层函数置为null

嵌套函数体内作用域链上至少有三个对象。

**闭包形成的原因:**外层函数调用后,外层函数的作用域对象被内存函数的作用域链连着无法释放,从而形成了闭包。

作用域:

  1. 用法方面:一个变量的可用范围
  2. 本质:保存变量的对象

为什么要有作用域?

​ 为了防止不同范围的变量相互干扰

js一共有几级作用域?(2级)

1. 全局作用域
2. 函数作用域

let作用域是ES6后来出现的,let作用域范围:到当前代码块的底部。

**作用域链:**多层作用域对象串联形成的链式结构。

什么是原型对象?

集中存储同一类型的所有子对象共用成员的父对象,这个父对象就叫原型对象。

原型链

多级原型对象逐级形成的连式结构

原型对象怎么来的?

每次创建构造函数的时候都会自动赠送一个空的原型对象。

如何访问到原型对象?

构造函数.prototype=原型对象

子对象.proto=原型对象

原型对象.contructor=构造函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值