发表于: 2020-08-31 23:08:04

1 2295



今天完成的事情:

1.回顾知识点


明天计划的事情:

1.回顾知识点



遇到的问题和收获:


闭包

理解:什么是闭包?

  1. 密闭的容器,类似于set,map容器,存储数据的

  2. 闭包是一个对象,存放数据的格式:key:value

闭包指的是:能够访问另一个函数作用域的变量的函数。清晰的讲:闭包就是一个函数,这个函数能够访问其他函数的作用域中的变量

形成的条件:

  1. 函数嵌套

  2. 内部函数引用外部函数的局部变量


//闭包的应用场景

function fun() {

    var count = 1

    return function () {

        count++

        console.log(count);

    }

}

var fun2 = fun()

fun2()//2

fun2()//3



function fun(n, o) {

    console.log(o);

    return {

        fun: function (m) {

            return fun(m, n)

        }

    }

}

//闭包在内部函数里,这里返回值给了a,即在a里

var a = fun(0)//undefined

a.fun(1)//0

a.fun(2)//0

a.fun(3)//0

//这里的对象変了,里面存的闭包也不是同一个了、上面一直是a,所以n一直是0

var b = fun(0).fun(1).fun(2).fun(3).fun(50).fun(22)//undefined,0,1,2,50

fun(0).fun(1)之后,相当于

 fun: function (1) {

            return fun(1, 0)

        }

fun(1, 0)即 

function fun(n, o) {

    var n=1

    console.log(o);

    return {

        fun: function (m) {

            return fun(m, n)

        }

    }

}

此时的闭包值n就成为了1

var c = fun(0).fun(1)

c.fun(2)

c.fun(3)//undefined,0,1,1



变量提升

js引擎在代码正式执行之前会做一个预处理工作:

  1. 收集变量

  2. 收集函数

依据:

  • var 将var后边的变量定义但是不赋值,如 var a,a此时就是undefined

  • function(){},提前定义该函数


Vue组件间的通信方式

通信种类

  1. 父组件向子组件通信

  2. 子组件向父组件通信

  3. 隔代组件间通信

  4. 兄弟组件间通信

实现通信的方式:

  1. props

  2. vue自定义事件

  3. 消息订阅与发布

  4. vuex

  5. slot



闭包的理解不是很清晰



返回列表 返回列表
评论

    分享到