比如:
function getSource(sourceName)
{
    ...
         
    return eval(sourceName + ...).name;
}显然,如果sourceName是对象的话这里就会出错,所以我需要将其转成字符串,不知道有什么办法,toString不成,value也不成:(((

解决方案 »

  1.   

    不知道你干什么乱传东西。。~~~~
    function getSource(sourceName)
    {
        ...
     
        if(typeof(sourceName)=="string")        
            return eval(sourceName + ...).name;
        var obj=sourceName;//object?
        return eval("obj").name;//还不如return obj.name
    }
      

  2.   

    toString 方法
    返回对象的字符串表示。objectname.toString([radix])参数
    objectname必选项。要得到字符串表示的对象。radix可选项。指定将数字值转换为字符串时的进制。说明
    toString 方法是所有内建的 JScript 对象的成员。它的操作依赖于对象的类型:对象 操作 
    Array 
    将 Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。 
    Boolean 
    如果 Boolean 值是 true,则返回 “true”。否则,返回 “false”。 
    Date 返回日期的文字表示法。 
    Error 返回一个包含相关错误消息的字符串。 
    Function 返回如下格式的字符串,其中 functionname 是被调用 toString 方法函数的名称: 
    function functionname( ) { [native code] }
     
    Number 返回数字的文字表示。 
    String 返回 String 对象的值。 
    默认 返回 “[object objectname]”,其中 objectname 是对象类型的名称。 
      

  3.   

    对对象,像windows,可以如此操作:
    for(var str in window) {
        alert(str + "=" + eval("window." + str));
    }
      

  4.   

    谢谢,我问题解决了,但不是不是用这么办法了,我再传参数前确保是个字符串了,但浪费了些许,但继续我所提得问题,比如:我想得到
    document.frames("frmTest").document这个对象,但第一个document是传近来得参数,但也有可能是:document.frames("frmOther").document显然如果我用eval(...)得话,如果上面得是对象时就回出错,所以我希望能传成字符串,再eval的而toString得到得好像都是[object]而不是我要得字符串:(谢谢again