xing393939 发表于 2010-7-25 02:01:59

如何处理参数obj,让方法A的域有obj对象的元素

<script type="text/javascript">
function A(obj) {
    //如何处理obj,让方法A的域有obj对象的元素?好比写var a = '', b = '',这样的效果?当然a,b是随传入的obj值而可变的!
    if(a) alert(a);
    if(b) alert(b);
}
A({a:a});
A({b:b});
</script>

aasddsasda 发表于 2010-7-26 04:07:17

<script type="text/javascript">
function A(obj) {
    with(obj){
     //如何处理obj,让方法A的域有obj对象的元素?好比写var a = '', b = '',这样的效果?当然a,b是随传入的obj值而可变的!
     if(a) alert(a);
     if(b) alert(b);
    }
}
A({a:a});
A({b:b});
</script>

abcdreamer 发表于 2010-7-26 10:59:39

不要试图做一些不可能或者费力不讨好的事情

yadan 发表于 2010-7-26 11:55:22

先obj toString,然后eval string,但是这样得到的变量是全局的,不是在方法A那个作用域下

zabcd117 发表于 2010-7-29 16:51:16


function A(obj) {
    //如何处理obj,让方法A的域有obj对象的元素?好比写var a = '', b = '',这样的效果?当然a,b是随传入的obj值而可变的!
        var str = '';
        for(var p in obj){
                //获取type
                var type = typeof(obj);
                var com = '';
                switch(type){
                        case 'string':
                                com = '\'';
                        break;
                        default:
                                ;
                }
                str += 'var '+ p +'='+ com+ obj +com+';';
        }
        eval(str);
    if(a) alert(a);
    if(b) alert(b);
}
A({a:'a',b:234});

是这个意思么?
页: [1]
查看完整版本: 如何处理参数obj,让方法A的域有obj对象的元素