function dialog()
{
this.str="hello";
}
 
var d=new dialog();
alert(d.str);
d.str="hello2";
alert(d.str+" "+this.str+" "+dialog.str);// 结果 hello2 undefined undefined 以上str重新赋值以后 除了d.str以外还有什么方式获得str的值吗?

解决方案 »

  1.   

    不明白你想做什么
    你不是获取到str属性的内容了么?就是这种方式就可以了
    非要另外的方式的话
    for(var pro in d)
    {
      alert(pro);
    }
    获取一个变量的值而已,还要用几种方式,有意义么?
      

  2.   

    感谢wzs_xyz
    例子只是映射了遇到的问题
    上面获得值是在已经知道实例化对象名的前提下 如果dialog()在外部js里面
    然后这个.js 有一个其他的方法需要得到这个值呢
     
      

  3.   


    var hello=function()
    {
    this.str="hello";
    }
    hello.prototype.show=function()
    {
    alert(this.str)
    }
    var h=new hello();
    h.str="hello2";
    h.show();已解决 感谢x269147836 wzs_xyz
      

  4.   

    这个用得太混乱了。
    global object当中没有叫str的property,所以this.str当然是undefined
    dialog是什么?global ojbect当中也没有叫dialog的property,所以也是undefined
      

  5.   

    alert(d.str+" "+this.str+" "+dialog.str);d.str 是实例的str
    this.str 是window.str window中没有定义str,所以是undefined
    dialog.str 是类dialog的str,还没有实例化,自然取不到,所以还是undefined