JS中的闭包应用

js 复制代码
/**
 * @param {string} val
 * @return {Object}
 */
var expectFn = function (val) {
  // TODO
  return {
    toBe(_val) {
      return val === _val || "Not Equal";
    },
    notToBe(_val) {
      return val !== _val || "Equal";
    }
  };
};

// console.log(expectFn(5).toBe(5)); // true
// console.log(expectFn(5).notToBe(5)); // "Equal"

module.exports = expectFn;

return { ... };

这是 expectFn 函数的核心,它返回一个对象(Object)。

这个对象包含了两个方法:toBe 和 notToBe。这意味着可以像 expectFn(5).toBe(5) 这样链式调用。

运用闭包(toBe 和 notToBe 能够访问 expectFn 的 val 参数)和短路逻辑运算符 (||)

相关推荐
玖釉-8 小时前
C++ 中的循环语句详解:while、do...while、for、嵌套循环与循环控制
开发语言·c++·算法
lichenyang4538 小时前
鸿蒙聊天 Demo 练习 05:新增登录功能,实现登录态保存与页面访问控制
前端
XMYX-08 小时前
37 - Go env 环境变量:配置管理与运行时控制
开发语言·golang
还有多久拿退休金8 小时前
我用 Three.js 造了个 3D 漫步世界,角色走路像喝醉了——以及我是怎么修好的
前端·vue.js
SZLSDH8 小时前
场景适配论 | 数字孪生IOC建设中渲染技术与智能体能力的协同逻辑
前端·数据库·ai·数字孪生·数据可视化·智能体
_按键伤人_8 小时前
二、从零搭建本地 RAG 知识库
前端·llm·ai编程
一楼的猫8 小时前
从文本特征分析看网文平台AI检测:3个被忽视的指标
开发语言·人工智能·学习方法·ai编程·ai写作·ai自动写作
_按键伤人_8 小时前
一、理解 RAG:从概念到实践
前端·llm·ai编程
lichenyang4538 小时前
鸿蒙聊天 Demo 练习 04:聊天历史本地缓存,实现消息记录持久化
前端
yuan199978 小时前
基于MATLAB的梁非线性动力学方程编程实现框架
开发语言·matlab