关于闭包(壹)

 前言

245ffa5c566975ea66e48b89e48606a9.png

 大家好 我是歌谣 今天给大家带来的是关于闭包的学习 首先 去创建一个新项目

环境配置

4a92d80c9c5c82c440ffa304d20b4895.png

npm init -y

yarn add vite -D

 修改page.json配置端口

4fe2498c65af8eb1ac4412d4feb162b5.png

{
"name": "demo1",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "vite --port 3002"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"vite": "^4.4.9"
}
}

 代码演示

e247a578de22aa1b1ffb6746ee229306.png

console.log("geyao")
function test() {
var a = 1;
var b = 2;
function test2() {
console.log(a, b)
}
debugger
test2()
}
test()

 debugger代码

84d73b7883f1423091392472f3b57c5b.png

899839c461cac4e7a14a66a9722ac826.png

代码演示return

dd846acb7ef9670f63e7e1e2db302d50.png

console.log("geyao")
function test() {
var a = 1;
var b = 2;
function test2() {
console.log(a, b)
}
return test2
}
const test2=test()
debugger
test2()

 debugger代码

4ad8d39a804e71ff7478a74cc6c8b4e0.png

2d6dd5107c3f38e4be378524a1744388.png

 非闭包

d015aaaec72bd159a20997e14a9893d8.png

function test2(){
console.log("123")
}
function test(){
var a=1;
return test2()
}

 计算案例

a57383f10115fb908adfd98476341af2.png

function calculator(initnumber){
var num=Number(initnumber) || 0
function changeNumber(value){
num += value
}
function add(value){
changeNumber(value)
}
function minus(value){
changeNumber(-value)
}
function value(){
return num
}
return {
add,
minus,
value
}
}
const cal=calculator(100)
console.log(cal.value())
cal.add(5)
console.log(cal.value())
cal.minus(50)
console.log(cal.value())

 运行结果

2e892c2187d80453d1a5e6e084c49b0a.png

04702b218d7ccd7f95c9b79e10364638.png

节流案例

e090727c4b9e30489e63adeb8568fba5.png

<input id="textInput">
<script type="module" src="./indexdemo3.js">
</script>
const oInput=document.getElementById('textInput')
oInput.addEventListener('input',throttle(handler,800),false)
function handler(){
console.log(this.value)
}
function throttle(handler,delay){
var delay=delay||1000
var initTime=new Date().getTime();
return function(args){
var ctx=this
var currentTime=new Date().getTime()
if(currentTime-initTime>=delay){
handler.call(ctx,args)
initTime=currentTime
}
}
}

 运行结果

f78125dd6b364636dc16893e50089d92.png

0216f97ea3f8110da61a25d0669a636a.png

总结

5d3e6f716ab4fb58a16a9c8616534ac9.png

我是歌谣 最好的种树是十年前 其次是现在

下方查看历史文章

9d6380503a9817515b1389fcbacaff68.png

关于react-admin+postgrest小案例

关于react-redux案例

posted @   前端导师歌谣  阅读(4)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示