使用运行时确定的名称而不使用 eval 创建函数
问题:
是否可能在纯 JavaScript 中创建命名函数而不使用 eval 或非标准功能,其中该函数名称是在运行时确定的?
答案(仅限 ES6):
是的,在 ES6 及更高版本(又名“ES2015”)中,可以使用匿名函数表达式分配给计算对象属性名称。
const dynamicName = "foo" + Math.floor(Math.random() * 1000); const obj = { [dynamicName]() { // ... }, }; const f = obj[dynamicName]; console.log("Function's `name` property: " + f.name); // Outputs "foo###", where ### is a random 1-3 digit number
在此示例中,我们使用计算属性名称来动态生成随机名称的功能。该函数被分配给对象属性,并且可以通过 name 属性访问其名称。但请注意,浏览器兼容性可能会有所不同,并且某些浏览器可能不会在堆栈跟踪中显示动态函数名称。
以上是您可以在 JavaScript 中使用运行时确定的名称创建命名函数吗?的详细内容。更多信息请关注PHP中文网其他相关文章!