代码之家  ›  专栏  ›  技术社区  ›  Reactgular

使返回的匿名函数与每个调用的实例相同

  •  3
  • Reactgular  · 技术社区  · 8 年前

    以下函数为每个调用返回一个新的匿名函数。

    public example() {
        return (): string => {
            return 'hello world';
        };
    }
    
    let a = example();
    let b = example();
    
    console.log(a === b);
    

    上面将打印 false

    是否可以重复使用同一匿名函数而不必将其作为 this . 所以函数是孤立的。

    2 回复  |  直到 8 年前
        1
  •  3
  •   ASDFGerte    8 年前

    你可以有 example 是一个函数,通过使用IIFE关闭要返回的函数:

    let example = (() => {
        let _priv = () => "hello world";
        return function(){ return _priv; };
      })();
      
    let a = example();
    let b = example();
    
    console.log(a === b);

    这是私有变量的方法之一(如果不是方法的话),在使用typescript的静态检查和 private .

        2
  •  -1
  •   POV    8 年前
    import * as deepEqual from "deep-equal";
    

    尝试使用: console.log(deepEqual(a, b);

    推荐文章