《JavaScript高级程序设计(第4版)》勘误

it2023-02-21  79

《JavaScript高级程序设计(第4版)》勘误

第6章 集合引用类型

6.5 WeakMap

位置:169页错误内容: 有误之处是书中的示例代码部分: const wm = new WeakMap(); const key1 = {id: 1}, key2 = {id: 2}, key3 = {id: 3}; // 使用嵌套数组初始化弱映射 const wm1 = new WeakMap([ [key1, "val1"], [key2, "val2"], [key3, "val3"] ]); alert(wm.get(key1)); // val2 alert(wm.get(key2)); // val2 alert(wm.get(key3)); // val3

输出wm应该是得到 undefined ,另外,即使是输出wm1.get(key1) 怎么会得到 val2 的结果呢?

应该更正为: alert(wm1.get(key1)); // val1 alert(wm1.get(key2)); // val2 alert(wm1.get(key3)); // val3
位置:169页错误内容:

有误之处是书中的示例代码部分:

// 原始值可以先包装成对象再用作键 const stringKey = new String("key1"); const wm3 = new WeakMap([ stringKey, "val1" ]); alert(wm3.get(stringKey)); // "val1"

这里会报错: 因此,下面的 alert(wm3.get(stringKey));" 根本不会执行。

应该更正为: const wm3 = new WeakMap([ [stringKey, "val1"] ]);

需要将键/值对用中括号包裹,否则会抛出错误。

最新回复(0)