发表于: 2020-08-31 23:08:04
1 2295
今天完成的事情:
1.回顾知识点
明天计划的事情:
1.回顾知识点
遇到的问题和收获:
闭包
理解:什么是闭包?
密闭的容器,类似于set,map容器,存储数据的
闭包是一个对象,存放数据的格式:key:value
闭包指的是:能够访问另一个函数作用域的变量的函数。清晰的讲:闭包就是一个函数,这个函数能够访问其他函数的作用域中的变量
形成的条件:
函数嵌套
内部函数引用外部函数的局部变量
//闭包的应用场景
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引擎在代码正式执行之前会做一个预处理工作:
收集变量
收集函数
依据:
var 将var后边的变量定义但是不赋值,如 var a,a此时就是undefined
function(){},提前定义该函数
Vue组件间的通信方式
通信种类
父组件向子组件通信
子组件向父组件通信
隔代组件间通信
兄弟组件间通信
实现通信的方式:
props
vue自定义事件
消息订阅与发布
vuex
slot
闭包的理解不是很清晰
评论