ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

第083篇 作用域函数五兄弟:let、run、with、apply、also

第083篇 作用域函数五兄弟:let、run、with、apply、also let、run、with、apply、also这五个作用域函数,语法上都是"把一段代码包起来",但它们的组合有 2×2 两种维度共四种,加上with构成五兄弟。答这题靠背表格没用——从定义出发(参数式 vs 接收者式、返回旧对象 vs 返回新值)就能自己推出这五个的行为,不需要背。先把结论放在前面:两个维度决定一切。维度一:对象怎么进来——let/also把值作为参数传(it),run/apply/with把值作为接收者(this)。维度二:返回什么——also/apply返回原对象(用于链式中间步),let/run返回lambda 的结果(用于变换)。with特殊:它不是扩展函数而是普通函数,参数是接收者,返回 lambda 结果。组合起来就是:let=参数+新值、also=参数+原对象、run=接收者+新值、apply=接收者+原对象。
返回列表