aaaa
This commit is contained in:
48
teaching/lhj/kejian/js/bibao.html
Normal file
48
teaching/lhj/kejian/js/bibao.html
Normal file
@@ -0,0 +1,48 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Document</title>
|
||||
<script>
|
||||
var y=2
|
||||
function fn(){
|
||||
var x=1
|
||||
// console.log(x+y) //3
|
||||
function fn1(){
|
||||
x=x+32
|
||||
console.log(x+y)
|
||||
}
|
||||
return fn1
|
||||
}
|
||||
function m(){
|
||||
var p=0
|
||||
console.log(y)
|
||||
return y
|
||||
}
|
||||
|
||||
var z=fn()
|
||||
z()
|
||||
|
||||
var w=m() //w=undefined
|
||||
console.log(fn())
|
||||
// var z=fn()
|
||||
// console.log(z.toString())
|
||||
// z() //从全局访问函数fn中的变量 x =====> 闭包
|
||||
// 闭包: 有权访问另一个函数作用域中变量的函数
|
||||
// 闭包形式:函数嵌套函数 并且返回内层的函数体
|
||||
|
||||
// 闭包作用:1. 可以读取函数内部的变量
|
||||
// 2.让这些变量的值始终保持在内存中
|
||||
|
||||
|
||||
// 造成的问题 1.由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
|
||||
// 2. 不要随便改变父函数内部变量的值。(闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value))
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user