028-86922220

建站动态

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

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

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

创新互联公司主营宁波网站建设的网络公司,主营网站建设方案,重庆App定制开发,宁波h5成都微信小程序搭建,宁波网站营销推广欢迎宁波等地区企业咨询

函数的两个阶段

  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.tsicrk.com/article/ghshdj.html

其他资讯

让你的专属顾问为你服务

2.1438s