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

发布时间:2020-08-06 23:15:20 作者:好程序员
来源:ITPUB博客 阅读:90

  好程序员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()

    }}

推荐阅读:
  1. 好程序员web前端培训分享HTMLCSS学习之CSS基础
  2. ​好程序员web前端培训分享node学习笔记系列之四十一

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

javascript web 分享

上一篇: CocoStudio 0.2.4.0 UI编辑器下根Panel控件设置背景图片时一个BUG

下一篇:好程序员Java学习路线分享Dubbo架构介绍

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》