JavaScript局部变数宣告 [英] Javascript local variable declare

查看:71
本文介绍了JavaScript局部变数宣告的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

基本上,这是一个如何访问本地范围处理程序的问题.我试图为全局变量定义实现类似的东西:

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,我发现相关问题正在谈论我的需求...

如何在javascript中动态访问本地范围?

我只记得在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆