Js:将箭头函数名称分配给变量

Js: assign arrow function name to variable

我有一个箭头函数:

() => 'a'

我可以用我的变量之一命名这个函数吗,这样:

let func_name = 'a';

// expected output
// let a = () => 'a';       

有可能。由于除基本类型外的所有内容都是 JavaScript 中的对象,您可以:

不太正确的方法,污染了全局或当前命名空间:

function func(){
  // func is an object, see Functions on MDN
  let func_name = 'a';

  this[func_name] = () => func_name;


  // To call it
  console.log(
    this[func_name]()
  );
}

func();

// func is an object, see Functions on MDN
let func_name = 'a';

// Object.freeze, so obj cannot be changed, similar to const
// Object.seal, the structure cannot be changed.
const obj = Object.freeze({
  [func_name]: () => func_name
})

obj[func_name] = "aaaaa"; // Throws an error in strict mode

// To call it
console.log(obj[func_name]());

请记住,您可以随时将 obj[func_name] 重新分配给任何内容。根据实施情况,您可以使用 Object.sealObject.freeze