this
从命名空间import调用的导入函数的值是什么?(根据ECMA规范)
// module.js
export function fun() {
return this;
}
// main.js
import * as module from "./module.js";
let x = module.fun(); // What's the value of x here?
我的猜测是:这是module
对象,但尚未在规范中找到明确的答案。正常行为是否适用于此,还是ES6模块中用于名称空间导入的某些特殊功能?
根据我对规范的阅读,它应该是模块名称空间的外来对象(module
在示例中已绑定到该名称)。换句话说,出口的袋子。因此,在您的示例中,我相信您可以调用x.fun()
下一条语句。
据我所知...
该模块命名空间对象将被设定为从评估返回的参考的基值MemberExpression
在12.3.2.1运行时语义:评估
该this
值将照常在算法的步骤5.ai中的12.3.4.1运行时语义:评估中设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句