gpt4 book ai didi

Javascript:IE8 中的 eval 行为

转载 作者:行者123 更新时间:2023-11-29 18:31:59 24 4
gpt4 key购买 nike

请考虑 http://jsfiddle.net/KE8Mv/ 中的示例

HTML

<input type='text' id="log" />

JavaScript

var f = function(){
if(console && console.log)
console.log('hello eval issue!');
}.toString();

var f1 = eval('('+f+')');

var logMsg = f1===undefined?'eval returns none':'eval returns function';

$('#log').val(logMsg);

eval 调用在 FF 和 Chrome 中返回 function() 对象,但在 IE8 中返回 undefined:(可能是什么问题?如何在所有浏览器中获得相同的行为?

最佳答案

如果您真的想这样做,您可以创建一个匿名函数,它将返回您需要的函数:

var f1 = eval("(function() {return " + f + ";})()");

编辑:或者更简单(只需要让浏览器认为这是一个表达式,函数是该表达式的结果,所以我们可以使用 comma operator ):

var f1 = eval("0, " + f);

但您可能要考虑使用 Function constructor将函数体作为字符串。

关于Javascript:IE8 中的 eval 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com