JavaScript中如何实现调用函数时返回上一次传入的参数
JavaScript实现方案
核心利用闭包特性持久化存储上一次传入的参数,每次调用返回的函数时先输出存储的旧参数,再更新存储值为本次传入的参数即可,代码如下:
function alertMyPreviousParam(initialVal) { // 闭包存储上一次调用的参数 let lastVal = initialVal return function handleCall(currentVal) { // 输出上一次的参数 console.log(lastVal) // 更新存储的参数为本次传入的值,供下次调用使用 lastVal = currentVal // 返回自身支持连续链式调用 return handleCall } }
效果验证
运行以下代码可得到和需求完全匹配的输出:
let y = alertMyPreviousParam("1"); let z = y('2') // 输出为 1 let a = z('3') // 输出为 2 let b = a('ra') // 输出为 3 let c = b('z') // 输出为 'ra'
该实现兼容严格模式,无语法兼容问题。
内容的提问来源于stack exchange,提问作者theblacklinen
相关产品推荐
相关产品推荐

