var temp = {
            Id: 1,
            Item:{
                Text:function () {
                    //这里需要使用ID属性
                },
                Value:function () {
                    //这里需要使用ID属性
                }
            }
        };如题。
很纠结。
怎么在一个对象的属性的属性中获取对象的属性?
this关键字试了,在text中使用获取的是Item属性。

解决方案 »

  1.   

    那你就改成  var temp =function()去定义吧
      

  2.   

    已测 可以调到<script type="text/javascript">
    var temp = {
                Id: 1,
                Item:{
                    Text:function (e) {
                        alert(this.Id)
                    },
                    Value:function () {
                        alert(this.Id)
                    }
                }
            };
      //调用
    temp.Item.Text.call(temp);
    </script>
      

  3.   

    var temp = {
        Id: 122,
        Item:{
            Text:function () {
                //这里需要使用ID属性
                alert('Text:'+temp.Id);
            },
            Value:function () {
                //这里需要使用ID属性
                alert('Value:'+temp.Id);
            }
        }
    };
    temp.Item.Text();
    temp.Item.Value();
      

  4.   

    Lz,你丢了人家2楼的板砖??
    使用以下方式是可以在里面直接使用this的,因为将其作用域被变更为temp了,内部的this指向的是temp,而不是原来的temp.Item了,this.id==temp.id:
    temp.Item.Text.call(temp);
      

  5.   


    我的意思是不用传参,只使用this。