3 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊
存儲(chǔ)函數(shù)名稱并從其他腳本中讀取它以調(diào)用該函數(shù)。另一個(gè)腳本必須包含該函數(shù)。
如果您在第一個(gè)腳本中根本不使用它,則將其包含在兩個(gè)腳本中或僅包含在第二個(gè)腳本中。
const obj = {
payment: () => {
var name = document.getElementByID('name').value
alert(name)
}
}
第一個(gè)腳本(設(shè)置要存儲(chǔ)的函數(shù)名稱)
localStorage.setItem('func', 'payment')
第二個(gè)腳本(獲取函數(shù)名稱并調(diào)用它)
const funcName = localStorage.getItem('func')
// Call function
obj[funcName]()
注意:如果您不想復(fù)制代碼,則使用 eval() 是解決方案,但我認(rèn)為這非常危險(xiǎn),因?yàn)橛脩艨梢孕薷?localStorage 中的函數(shù)并執(zhí)行任何代碼。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
FAIK,localStorage 不能存儲(chǔ)函數(shù)。但是,您可以存儲(chǔ)代碼并稍后對其進(jìn)行評估。
function Payment() {
var name = document.getElementByID("name").value;
alert(name);
}
// store Payment or Payment.toString()
// storing Payment() is storing the function's result
localStorage.setItem("Payment", Payment.toString())
然后以后...
const StoredPayment = eval('(' + localStorage.getItem("Payment") + ')');
StoredPayment();

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以將函數(shù)存儲(chǔ)為stringintolocalStorage并可以使用函數(shù)重用它eval。
將函數(shù)存儲(chǔ)到localStorage
function Payment() {
var name = document.getElementById("name").value;
console.log(name);
alert(name);
}
localStorage.setItem('func', Payment.toString());
從 localStorage 獲取函數(shù)日期。
localStorage.getItem('func');
附件顯示了如何調(diào)用字符串化函數(shù)。
var payment = `function Payment() {
var name = document.getElementById("name").value;
console.log(name);
alert(name);
}`;
eval(payment);
Payment();
<input type="text" id="name" value="hello" />
添加回答
舉報(bào)