JavaScript局部变数宣告 [英] Javascript local variable declare
问题描述
基本上,这是一个如何访问本地范围处理程序的问题.我试图为全局变量定义实现类似的东西:
window['newObject'] = "some string";
alert(newObject);
但适用于本地范围.现在,我唯一的解决方案是使用evals:
eval("var newObject='some string'");
但这确实是丑陋的解决方案……最好的解决方案就像在window []解决方案中使用对本地范围的某种引用,但是我从未听说过对本地范围的任何引用……有什么想法吗?>
示例在这里:
function x(arg)
{
localScope[arg.name]=arg.value;
alert(sex);
}
x({name:"sex", value:"Male"});
Okey,我发现相关问题正在谈论我的需求...
我只记得在ECMA 262中,这只是使用"with"语句(当然还有eval)将动态局部变量动态添加到作用域的一种方法,这里是解决方法:
var x=function(obj)
{
with(obj)
{
alert(someObj);
}
}
alert(typeof someObj);
x ( {someObj:"yea"}) ;
alert(typeof someObj);
Basically this is a question how to access local scope handler. I trying to achieve something similar for global variable definition like:
window['newObject'] = "some string";
alert(newObject);
but for local scope. Right now only solution I have is using evals:
eval("var newObject='some string'");
But this is really ugly solution... The best one would be like using some reference to local scope like in a window[] solution, but I never heard of any reference to local scope... Any ideas ?
Example goes here:
function x(arg)
{
localScope[arg.name]=arg.value;
alert(sex);
}
x({name:"sex", value:"Male"});
Okey I found related question that is talking about what I need...
How can I access local scope dynamically in javascript?
I just remember that in ECMA 262 is only one way to add dynamically local variables to scope using "with" statement (and eval of course), here are solution:
var x=function(obj)
{
with(obj)
{
alert(someObj);
}
}
alert(typeof someObj);
x ( {someObj:"yea"}) ;
alert(typeof someObj);
这篇关于JavaScript局部变数宣告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!