MENTAL MODEL
先建立心智模型
JavaScript 程序可以看成:值在作用域之间流动,函数把输入映射为输出,闭包让函数携带创建时的环境。React 的组件与 Hook 都建立在这个模型之上。
React Atlas
交互式学习地图
值、执行与作用域
建立真正能解释运行结果的语言模型,而不是只记语法。理解值如何流动、函数如何执行、变量如何被捕获。
MENTAL MODEL
JavaScript 程序可以看成:值在作用域之间流动,函数把输入映射为输出,闭包让函数携带创建时的环境。React 的组件与 Hook 都建立在这个模型之上。
function createCounter(initial = 0) {
let count = initial
return {
read: () => count,
increment: () => ++count,
}
}
const counter = createCounter(2)
counter.increment() // 3
counter.read() // 3PRACTICE
实现一个 createHistory():支持 push(value)、undo() 和 current(),内部状态不能被外部直接修改。