我正在尝试使用字符串作为函数的一部分。
const import1 = require('./import1');
const import2 = require('./import2');
//on above files there is a method, let's call it method1.
const string = "import1"; // or could be "import2"
//I would like to use above string as code.
//This is what I tried:
const functionToUse = new Function(string + ".method1()");
functionToUse();
这是我得到的错误:“ ReferenceError:未定义import1”
我检查了这个答案:Convert a string to a function, gives ReferenceError,它可以正常工作,但是我需要将import1或2作为字符串传递。
感谢所有帮助!
最佳答案
为什么不使用对象访问功能?
const import1 = { method: function() { alert('method!'); } }; //require('./import1');
const import2 = { method2: function() {alert('method2'); } }; // require('./import2');
// Add link to both objects
window.myImports = { import1, import2 };
const string = "import1";
const functionToUse = getFunction(string + ".method");
function getFunction(path) {
const parts = path.split('.');
let obj = window.myImports;
for(let part of parts) {
obj = obj[part];
}
return obj;
}
functionToUse();
关于javascript - 在函数ReferenceError中使用字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59768174/