比如
window.onload = function() {
  var x = aaa(3);
  alert(x.str);
}function aaa(i) {
  var result = {
    num:i+1,
    str:"abc"
  };
  return result;
}
如果要显示返回的Object中的str的话,要像上面那样
我想问的是,能否直接
alert(x);
让它自动显示abc呢?而不需要alert(x.str)
当然,x.num和x.str必须还能访问

解决方案 »

  1.   

    js对象通通自带toString方法。window.onload = function() {
      var x = aaa(3);
      alert(x);
      alert(x.num);
      alert(x.str);
    }function aaa(i) {
      var result = {
        num:i+1,
        str:"abc",
        toString:function(){return this.str}
      };
      return result;
    }
      

  2.   

    我只是随便弄一段代码而已...
    再者,你上面的代码第一个弹出的结果是[Object Object]吧...
      

  3.   

    window.onload = function() {
      var x = aaa(3);
       x=eval(x);
      alert(x.str);
    }function aaa(i) {
      var result = {
        num:i+1,
        str:"abc"
      };
      return result;
    }这样是正确的,我已经测试通过
      

  4.   

    对不起,这方法确实可以,我昨天没仔细测试...
    不过如果我想让他返回的是一个数组或对象呢??
    比如
    window.onload = function() {
      var x = aaa(3);
      alert(x);
      alert(x.num);
      alert(x.str);
      alert(x.arr.length);
      alert(x.arr[2]);
      //上面这句能否直接用下面这句代替呢??
      alert(x.length);
      alert(x[2]);
    }function aaa(i) {
      var result = {
        num:i+1,
        str:"abc",
        arr:[1,2,3,4,5,6]
      };
      return result;
    }
      

  5.   

    不过如果我想让他返回的是一个数组或对象呢??
    function aaa(i) {
      var result = {
        num:i+1,
        str:"abc",
        arr:[1,2,3,4,5,6],
        length: function () {return this.arr.length}
      };
      return result;
    }