我需要的eval函數保存爲字符串,然後在JS代碼中使用它,這裏的情景:評估和演示一個字符串轉換爲可調用JS功能
步驟1
<textarea id="function_text">function test(e){ alert(e.id); }</textarea>
步驟2
var thatFunction = eval($("#function_text").val()); // returns undefined
步驟3
thatFunction.call({id: 100});
有沒有辦法做到這一點?
P.S.我知道所有的安全考慮因素,我只需要在步驟3提醒100!
配不上我,就像它保持例如,您可以通過使用分組操作做到這一點評估的東西到最低限度,函數名稱不是它的一部分。 – user1514042
我可以使用您的方法將某些上下文嵌入到eval調用中嗎?我想要在父母上下文中存在的一些功能是可識別的? – user1514042
使用調用,應用或綁定?是的,因爲你正在返回一個函數,你可以添加你想要的任何上下文。或者你的意思是從當前範圍注入現有的函數。這也應該起作用。 –