面向对象--第五篇(函数的调用模式)

    xiaoxiao2021-03-25  137

    JavaScript

    闭包练习

    setTimeout的执行时机 所有的主任务的代码执行完毕之后,去检查所有的setTimeout回调函数,如果到时间了就执行 用闭包来解决回调函数在调用的时候访问的是全局的变量 在闭包中创建一个变量,来单独存储当前的回调函数需要的数据, 在调用的时候就会去使用这个单独的数据,而不是去访问全局变量 注册点击事件的时候 点击事件在触发的时候访问的是全局的变量 在闭包中创建一个变量,来单独存储当前的事件处理函数需要的数据, 在调用的时候就会去使用这个单独的数据,而不是去访问全局变量

    闭包缓存

    缓存:将常用的数据进行存储,以提升性能 硬件缓存 浏览器缓存 CDN 内存型数据库 如何用闭包实现缓存 1、写一个闭包在闭包中创建一个对象,用来做缓存的存储对象 2、在闭包中创建一个对象,用来做缓存的存储对象 3、在闭包中创建一个数组,用来存储换中的键 4、返回一个函数,这个函数需要两个参数,一个是key 一个是value 5、在返回的函数中,判断传入的value是否为undefined 6、如果为Undefined 则表示是获取值,就直接返回在第一步创建的缓存对象中指定的键对应的值 7、如果不为Undefined 则表示是设置值 8、在缓存对象中设置指定的key的值为value 9、把key加入存储key的数组 10、判断key数组是不是超出了缓存大小限制 11、如果超出限制,删除数组第一个元素(使用shift),获取到删除的key 12、使用删除的key删除缓存对象中存储的值(delete)

    使用缓存解决斐波那契数列的性能问题

    就是将已经计算过的数字缓存进一个数组中,下次再来访问的时候,直接在数组中进行查找,如果找到直接使用,如果没有找到,计算后将数字存入数组,然后返回该数字

    沙箱模式

    沙箱模式就是一个封闭的独立的环境 沙箱模式的基本模型 (function(){ //变量定义 //逻辑代码 //如果需要,向window对象添加成员,以暴露接口 })() 第三方框架 插件 独立的组件

    函数的四种调用模式

    函数模式 this—>window 方法模式 this—->调用方法的对象 构造函数模式 this—–>new出来的对象 工厂模式 寄生模式 上下文模式 this—–>指定的是谁就是谁 call 函数.call(对象,arg1,arg2,arg3,…argn) apply 函数.apply(对象,数组) 都可以用来改变this的指向为参数的第一个值 call是使用单独的每一个参数来传参 apply是使用数组进行传参的,这个数组在调用的时候,会被意义拆解,当做函数的每一个采参数

    call在函数的形参个数确定的情况下使用 apply在函数的形参个数不确定的情况下使用 bind 只会改变this 不会立即执行

    this指向不同

    转载请注明原文地址: https://ju.6miu.com/read-10110.html

    最新回复(0)