第 4 章:抽象示例中的错误逻辑

作者: vesheff创建于 2019年10月5日更新于 2019年10月6日
标签second edition

在上一个[缩略语例 (https://GitHub.com/geify/Functional-Light-JS/blob/master/manuscript/ch4.md/#abstraction)中(当您把抽象取得太远时),代码中的逻辑与前面显示的原始实例相比是错误的. 因此,如果这是有意的,请忽略下面的评论,在对例子的描述中再作澄清。

  1. 第一个错误

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? 函数是PropUn自定义(val,obj,prop){ 返回为未定义( obj [prop] ); {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


- 上面的代码可以检查一个对象的属性是否未定义, 但是您在这里更改了上一个示例的逻辑, 并检查 ** store ** 的属性是否未定义 。

- 原逻辑:

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么?
如果(evt.name !===
storeData( 事件、 evt. name、 evt ) ;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
  1. 第二个错误
  • 您返回 ** 是未定义的** 结果, 如果属性未定义, 则是真实的, 因此逻辑再次错误 。

** 建议:**

  • 只需更改函数的名称, 并将函数包入另一个接受属性以检查未定义的函数 。 这就需要用名称的理由来援引这一职能。

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? 函数是PropDefined(prop){ 返回函数( obj) { 返回 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

函数轨道Event(evt) { 有条件的StoreData(事件,evt.name,evt,是PropDefined('name')); {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

- 现在,我们可以改变 引申**checkFn** 只有一个论点。

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么?
如果(检查Fn(值)){
存储[位置]=值;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

内容来源: getify/Functional-Light-JS