我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

前端-王卓凡-20230601

[复制链接]
王卓凡 发表于 2023-6-13 18:15:33 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
高阶函数
高阶函数是对其他函数进行操作的函数,它接收函数作为参数或者将函数作为返回值输出
function fn(callback) {
    callback()
}
fn(function () {
    console.log('cb')
})

//或者

function fn() {
    return function () {
        console.log(1)
    }
}
var f = fn()
f()闭包 - closure
ES6之前变量的作用域分为两种:全局和局部。
函数内部可以访问函数外面的变量,外部无法使用函数内部的变量。
函数执行结束,内部的变量会自动销毁。
闭包就是指有权访问另一个函数作用域中的变量的函数
闭包就是函数。
闭包的作用:扩展了变量的作用范围。
外层函数的变量 + 内层函数


function fun() {
  //外层函数的变量
    let a = 10
    //内层函数
    function fn() {
        console.log(a)
    }
    fn()
}
fun()
外部访问内部变量的实现
function fun() {
    var a = 10
    function fn() {
        console.log(a)
    }
    return fn
}
var f = fun()
f()案例应用
  • 点击列表获取当前的下标

<ul>
    <li>鸡蛋</li>
    <li>牛肉</li>
    <li>火腿</li>
    <li>腊肉</li>
</ul>var lis = document.querySelectorAll('li')
for (var i = 0; i < lis.length; i++) {
    (function (i) {
        console.log(i)
        lis.onclick = function () {
            alert(i)
        }
    })(i)
}
  • 2秒后打印出列表的内容

var lis = document.querySelectorAll('li')
for (var i = 0; i < lis.length; i++) {
    (function (i) {
        setTimeout(function () {
            console.log(lis.innerHTML)
        }, 2000)
    })(i)
}



回复

使用道具 举报

关注0

粉丝0

帖子47

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026