起點:使用這段代碼,我通過 func1 觸發 func2。到目前為止效果很好。
window.addEventListener("click", function (event) {
func1("func2()")
})
function func1(functionAsString) {
eval(functionAsString)
}
function func2() {
alert("success!")
}
問題: 一旦我從另一個 javascript 檔案匯入 func2。我不能再用這段代碼運行 func2 了....我已經嘗試過兩種匯入變體
import * as myfunc from "./xy" // myfunc[functionAsString]
也
import {func2} from "./xy" // eval(functionAsString)
不幸的是我沒有得到 func2 的地址。
有人可以給我決定性的提示嗎?很高興沒有.eval()
uj5u.com熱心網友回復:
我在本地環境中重新創建了您的問題并且它作業正常
我也在 codesanbox 上做過,但在這里不起作用
問題是在 codesandbox 環境parcel中使用了轉換檔案并更改函式的名稱,因此找不到名稱
無論如何,這在任何一種情況下都應該可以正常作業:
import * as myfunc from "./xy"
myfunc['func2']()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/535359.html
上一篇:替換引號內的字串
