使用提升,ES6 模块在文档准备好之前被加载。
例如,
// module.js
console.log('body', document.body);
export let a = 1;
// main.js
import {a} from 'module'
登录body null
控制台。
如何拥有使用 DOM 操作和必需的 ES6 模块document ready
?
我试着用
$(document).ready(function() {
var a = 1;
});
export {a};
在我的模块中,但 babel 给我返回了一个Unexpected token
错误。
我也试过
$(document).ready(function() {
export let a = 1;
});
我有一个'import' and 'export' may only appear at the top level
错误。
更新:
我有同样的问题
document.addEventListener("DOMContentLoaded",function(){
var a = 1;
}
export {a};
因为a
没有定义。
也就是说要导出的变量不可用(请参阅我的更新)。
更新:
这是我基于@MaciejSikora 代码的尝试:
function Test() {
document.addEventListener("DOMContentLoaded",()=>{
this.width = $(window).width();
});
};
//example object method
Test.prototype.getElement = function(el) {
return this[el];
};
export { Test };
在另一个文件中我做
var test = new Test();
var width = test.getElement('width');
但是width
是未定义的。