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.seal
或 Object.freeze
我有一个箭头函数:
() => '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.seal
或 Object.freeze