我试图在class website
{
public:
website(int input);
// ~website();
int insert(const mainentry & input);
int retrieve( char [], mainentry output [] );
int edit (mainentry & input);
int remove();
int display(char []);
int display_all();
int hashfunction(const char []);
private:
int SIZE;
node ** hashtable;
};
中import
es6
个包,但源文件使用期望window
范围的mule uploader作为参数传递。
导入包并将正确参数传递给es6
的正确IIFE
语法是什么?
注意:import { mule_upload } from 'mule-uploader
的问题不在于代码是否存在或正在执行。问题是scope
或namespace
没有通过IIFE
次运行传递。
App.jsx
import { mule_upload } from 'mule-uploader'
// this runs the mule-uploader file with the IIFE
// since `this` is not `window` at this point,
// the mule-uploader object has the incorrect scope/namespace
console.log(this) // undefined
// ... react logic
componentDidMount() {
// define settings
// this won't work because the namespace is undefined
mule_upload(settings)
}
答案 0 :(得分:1)
IIFE不接受任何论据
错!由于IIFE的正确ES6语法是:
$("div[id^='post_']").click(function() { ... })
你可以这样使用参数:
(() => {
}());
或简单地说:
((param) => {
console.log(`My IIFE + ${param} !`);
})("myParam");
// it will return => My IIFE + myParam !
如果你只有一个参数......
答案 1 :(得分:0)
如何将正确的参数传递给IIFE?
你做不到。 IIFE不接受任何参数 - 它已经被调用。
导入包的正确es6语法是什么?
我不认为可以将该文件作为模块导入,无论是在ES5还是在ES6中。在模块中,this
is not the global object。该代码无效。
您可能希望发出一个功能请求,以使该库可用作可导入模块(实际导出某些内容),而不是定义全局变量的脚本。对于backcompat,您可以建议他们使用UMD模式。