【第一个代码块最后部分的注释】
// 给不存在的属性赋值会抛出错误应为:// 抛出错误类似的还有:P281 倒数第5行P284 第16行P285 第3行P287 第3行P288 第20行P289 倒数第6行P293 第16行P294 第15行P295 第3行P296 倒数第10行P299 第3行P308 第12行这些位置的“给不存在的属性赋值会抛出错误”均应修改为“抛出错误”
因此使用它们是很重要的。应为:因此区别使用它们是很重要的。
若不用,则执行 [[Construct]] 方法应为:若不用,则执行 [[Call]] 方法
第2行与第4行代码性质:英文原著新增勘误
console.log(names.length); // 1 console.log(names[0]); // "proxy" console.log(keys.length); // 1 console.log(keys[0]); // "proxy"
应为:
console.log(names.length); // 1 console.log(names[0]); // "name" console.log(keys.length); // 1 console.log(keys[0]); // "name"
性质:英文原著新增勘误
删除“尽管 ownKeys 代理陷阱可以修改一小部分操作返回的键,但不影响更常用的操作,例如 for-of 循环和 Object.keys() 方法,这些不能使用代理来修改。”这句话。
【第一个代码块最后部分的注释】
因此使用它们是很重要的。
应为:
因此区别使用它们是很重要的。
若不用,则执行 [[Construct]] 方法
应为:
若不用,则执行 [[Call]] 方法
第2行与第4行代码
性质:英文原著新增勘误
应为:
性质:英文原著新增勘误
删除“尽管 ownKeys 代理陷阱可以修改一小部分操作返回的键,但不影响更常用的操作,例如 for-of 循环和 Object.keys() 方法,这些不能使用代理来修改。”这句话。