首页 > 解决方案 > 使每次调用返回的匿名函数成为相同的实例

问题描述

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

public example() {
    return (): string => {
        return 'hello world';
    };
}

let a = example();
let b = example();

console.log(a === b);

以上将打印false

是否可以重复使用相同的匿名函数而不必将其分配给this. 使功能隔离。

标签: javascripttypescript

解决方案


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

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

console.log(a === b);

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


推荐阅读