JavaScript中的动态函数名称?

2022-08-30 05:36:23

我有这个:

this.f = function instance(){};

我想有这个:

this.f = function ["instance:" + a](){};

答案 1

这基本上会在最简单的层面上完成:

"use strict";
var name = "foo";
var func = new Function(
     "return function " + name + "(){ alert('sweet!')}"
)();

//call it, to test it
func();

如果你想获得更多的花哨,我写了一篇关于“JavaScript中的动态函数名称”的文章。


答案 2

您可以使用 Object.defineProperty,如 MDN JavaScript Reference 中所述:

var myName = "myName";
var f = function () { return true; };
Object.defineProperty(f, 'name', {value: myName, writable: false});