400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

好程序员web前端培训分享JavaScript学习笔记闭包与继承-创新互联

  好程序员web 前端培训分享 JavaScript 学习笔记闭包与继承,闭包:闭包是我们函数的一种高级使用方式, 在聊闭包之前我们要先回顾一下  函数

创新互联公司是网站建设技术企业,为成都企业提供专业的网站制作、成都网站制作,网站设计,网站制作,网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制适合企业的网站。十年品质,值得信赖!

函数的两个阶段

  1. 定义阶段
  2. 调用阶段
  3. 开辟一个  存储空间
  4. 把函数体内的代码一模一样的放在这个空间内(不解析变量)
  5. 把  存储空间 的地址给函数名
  6. 按照函数名的地址找到函数的  存储空间
  7. 形参赋值
  8. 预解析
  9. 将函数  存储空间 中的代码拿出来执行(才解析变量)
  10. 按照函数名的地址找到函数的  存储空间
  11. 形参赋值
  12. 预解析
  13. 在内存中开辟一个  执行空间
  14. 将函数  存储空间 中的代码拿出来在刚刚开辟的  执行空间 中执行
  15. 执行完毕后,内存中开辟的  执行空间 销毁

函数定义阶段

函数调用阶段

重新定义函数调用阶段

function fn() {

    console.log('我是 fn 函数')}fn() 

函数执行空间

函数执行空间不销毁

function fn() {

    const obj  = {

       name : 'Jack',

       age : 18,

       gender : '男'

   }

    return obj} const o  = fn()

闭包

不销毁的空间

function fn() {

     return  function () {}} const f  = fn()

内部函数引用外部函数中的变量

function fn() {

    const num  = 100

    // 这个函数给一个名字,方便写笔记    return  function a() {

       console.log(num)

   }} const f  = fn()

闭包的特点

  1. 作用域空间不销毁

 

  1. 可以利用闭包访问再一个函数外部访问函数内部的变量

 

  1. 保护私有变量

闭包概念(熟读并背诵全文)

继承

一个小例子

继承的作用

好程序员web前端培训分享JavaScript学习笔记闭包与继承

常见的继承方式

function Person() {

     this.name  = 'Jack'}Person.prototype.sayHi  =  function () {

    cosnole.log('hello')}

原型继承

function Student() {}Student.prototype  =  new Person()

借用构造函数继承

function Student() {

    Person.call( this)}

组合继承

function Student() {

    Person.call( this)}Student.prototype  =  new Person

ES6 的继承

class Student  extends Person {

    constructor () {

         // 必须在 constructor 里面执行一下 super() 完成继承          super()

    }}


分享文章:好程序员web前端培训分享JavaScript学习笔记闭包与继承-创新互联
本文路径:http://www.bluegullmedia.com/article/ijoph.html

其他资讯

让你的专属顾问为你服务

0.0479s