jjzjj

javascript - 动态数组名称javascript

我有几个名称相似的数组。ArrayTop[]ArrayLeft[]ArrayRight[]ArrayWidth[]我试图在函数中动态设置名称,然后设置值。我尝试了很多动态选择正确数组的方法,但还没有找到解决方案。functionsetarray(a,b,c){eval(Array+a+[b])=c}setarray('Top',5,100)在这个例子中,我试图设置。ArrayTop[5]=100 最佳答案 如果您在浏览器中执行此操作,一种可能的解决方案是:functionsetArray(a,b,c){window['Array'+

使用 `new Function()` 优化 Javascript

在阅读文档时,我发现了一个可以大大提高javascript性能的简单优化。原代码:functionparseRow(columns,parser){varrow={};for(vari=0;i优化代码:varcode='return{\n';columns.forEach(function(column){code+='"'+column.name+'":'+'parser.readColumnValue(),\n';});code+='};\n';varparseRow=newFunction('columns','parser',code);在这里找到:https://github

javascript - 将嵌套数组转换为对象

我正在谈论的一个API在一个非常奇怪的嵌套数组结构中返回它的注册表。我想将这个怪物转换成一个对象,这样我的应用程序就可以轻松访问存储在这个输出中的整个对象。API给我的输出如下所示:[["settings","autoLogout","false"],["settings","autoLogoutMinutes","60"],["settings","presets","true"],["controller","rs232","ip","192.168.1.11"],["controller","rs232","name","NX-22"],["source","M23836","s

javascript - 使用 "eval"创建匿名方法 - 浏览器特定行为

我使用jQuery,我需要使用eval()函数生成一个匿名方法。以下行适用于Opera但不适用于IE、FF、Chrome:varcallbackStr="function(){alert('asdf');}";varcallback=eval(callbackStr);callback();此代码适用于所有浏览器:varcallbackStr="varcallback=function(){alert('asdf');}";eval(callbackStr);callback();你看,我已经解决了我的问题。但我想知道,到底发生了什么。任何人都可以向我解释这种行为,或者告诉我在哪里可以

javascript - 从任意评估代码中获取返回值

我有一个要求,即用户可以提供任意语句,这些语句可以存储在一个函数中,稍后调用以获得返回值。一个简单的例子是userInput可能是varx=10;x;我会通过以下方式存储它varcallback=function(){returneval(userInput);}然后运行​​callback()按预期返回10。但是,我还需要用显式返回语句来支持这种情况,即userInput可能是varx=10;returnx;在这种情况下,上面的eval方法将失败并返回SyntaxError:returnnotinfunction。相反,我可以将回调存储为varcallback=newFunction

javascript - 将条件存储为变量。 Javascript

在javaScript中,有没有一种方法可以将条件存储在变量中,然后在稍后评估该条件。我知道这可以使用eval()varcondition="(foo==pie);"alert(eval(condition));上述警报的值将根据foo和pie的值而变化。是否有类似的方法可以在不使用eval()的情况下执行此操作? 最佳答案 这看起来真的很像函数:varconditionChecker=function(){returnfoo==pie};alert(conditionChecker());

javascript - 缓存 eval() 结果

在Javascript中,是否可以缓存eval的结果??例如,如果我可以的话就太好了:varstr="somecode...";varcode=eval(str);//lateron...code.reExecute(); 最佳答案 您可以使str成为函数的主体并使用NewFunction而不是eval。varfn=newFunction([param1,param2,...],str);并通过调用fn(p1,p2,...)重用它或者使用eval,让str变成类似varfn=eval("(function(a){alert(a);}

eval 反序列化后 Javascript 原型(prototype)未定义

尝试反序列化JSON数据并更新每个对象的原型(prototype)并继承一个通用函数。但是,以下脚本会抛出错误“people[0].getFullName不是一个函数”。反序列化对象的原型(prototype)在分配后似乎未定义。varjson='[{"firstName":"John","lastName":"Smith"},{"firstName":"Nancy","lastName":"Jones"}]';varpeople;eval('people='+json);functionPerson(){}Person.prototype.getFullName=function()

javascript - 在 JavaScript 中使用 `return false` 时处理 `eval`

我正在处理这样一种情况,我需要将jQuery事件绑定(bind)到页面以处理通过JSF生成的UI更新。唉,JSF糟透了,它会在所有内容上粘贴onclick事件,这抢占了我的任何jQuery工作。感谢SO上的优秀人员,我找到了解决方案:mixingmyjQueryclickeventswithexistingobject'sonclickattribute逻辑是:在页面加载时,获取所有onclick属性并将它们存储在一个变量中。绑定(bind)我的jQuery事件在我自己的jQuery事件之后,我可以eval原始的onclick:eval(onclickValueVariable)这在我

javascript - 使用 eval() 设置全局变量

我使用eval设置全局变量的代码无法正常工作。就好像根本没有调用赋值,但没有发生脚本错误。$(function(){setTimeout(function(){eval('varx=1;');alert(x);},0);});Clicktosee'x'当页面加载时,警报显示我所期望的;它确认x=1。但在那之后,我单击div并收到x未定义的javascript错误。如何使eval正确添加此变量?背景:上面的代码是我正在处理的项目中的一个最小重现示例,在该项目中我们必须在AJAX响应期间执行javascript代码。eval大多数时候都能正常工作,但这会导致问题。