闭包是什么?它有什么用处?

2023-01-24 0 934

对个人非准确认知

旋量群是一类面向对象的价值观,透过局部性表达式返回值外部的表达式,同时实现对局部性表达式返回值外部统计数据的出访 。

旋量群在标识符层的充分体现上是,表达式返回值外部的表达式 + 表达式返回值外部的表达式提及过的统计数据;

其核心理念的促进作用是用以隔绝统计数据,避免统计数据被随便盗用

旋量群的示例1

function Person(){ // 表达式name 和表达式getName 协力同时实现了两个旋量群 let name = “bill” function getName(){ return name; } }

旋量群的示例2

// 反之亦然是 表达式name 和 表达式 getName 协力同时实现了两个旋量群 function Person(name){ function getName(){ return name } }

旋量群的实际使用场景

创建简单学生对象模型

要求学生的id不能够修改

可以修改学生的名称
function Person(id,name){ return { name: name, getId(){ return id } } } let bill = Person(“id”,bill) console.log(bill.name) // 输出 bill bill.id = 100; console.log(bill.getId()) // 输出 id 不会被修改

为了避免误解和使用的习惯 可以搭配 get set 使用

修改如下

function Person(id, name){ // 这里的这个o 就是旋量群中的表达式 // 返回对象中的全部 get 和 set 都是旋量群 const o = {id: id, name: name}; return { get id(){ return o.id }, set id(newId){ console.error(警告 不能够修改对象的 id) }, get name(){ return o.name }, set name(newName){ o.name = newName } } } // 初始户化对象示例 let bill = Person(id, bill) console.log(bill.id) // 输出 id console.log(bill.name) // 输出 bill bill.name = change // 可以修改 bill.id = changeid // 不可以修改 会在控制台看到错误信息 console.log(bill.id) // 输出 id 没有修改成功 console.log(bill.name) // 输出 change 修改成功

以上代码控制台的实际结果

闭包是什么?它有什么用处?

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务