在常规脚本中,可以通过字符串名称调用函数,例如window["myFunc"]()
。
除了声明对象并将方法分配给它之外,在类型为“module”的JS脚本的“顶层”是否有相当的方法可用于调用函数?
谢谢。
在常规脚本中,可以通过字符串名称调用函数,例如window["myFunc"]()
。
除了声明对象并将方法分配给它之外,在类型为“module”的JS脚本的“顶层”是否有相当的方法可用于调用函数?
谢谢。
模块的一个主要好处之一是允许避免全局污染的代码。模块的顶层类似于IIFE - 模块可以看到所有全局内容,但是除了以下情况外,没有东西可以看到模块内部声明的内容:
虽然在技术上你可以做一些像这样的事情:
window.foo = 'foo';
没有等价的东西。即使在非模块中,let
、const
和 class
声明也不会成为全局对象或任何其他对象的属性。
(这其实是一件好事!显式优于隐式。)
const foo = 'bar';
被分配给它们的环境一样(通常是封闭块,如果没有封闭块则为顶层)。如果您不做任何奇怪的事情并理解提升的影响,您可以认为对于大多数目的,function fn() { ...
等同于const fn = function() {
——这就像声明另一个变量。 - CertainPerformance