我想要实现的是对象的以下结构。请注意,所有属性值都是常量字符串:

ObjA
    ObjB
        prop1
        prop2
        prop3
    ObjC
        prop4
        prop5
    .
    .
    .


因此,应该可以使用以下sintax访问属性值:

alert(ObjA.ObjC.pro4);


到目前为止,我已经尝试了以下类似方法,但均未成功。

    var csi = new Object();
    var cao98 = new Object();
    csi.cao98="";
    csi.cao98.rgi = "NRRGILIG";
    alert (csi.cao98.rgi);


可能吗?我不想在这个问题上走得太远,因为关于这个主题有很多讨论。

最佳答案

在第三行,您为cao98对象的csi属性分配一个空字符串。

我认为您的意思是:

var csi = new Object();
var cao98 = new Object();
csi.cao98=cao98;
csi.cao98.rgi = "NRRGILIG";
alert (csi.cao98.rgi);


如果您只是像这样从字面上定义对象,则可以改用对象文字语法:

var csi = {
    cao98: {
        rgi: "NRRGILIG"
    }
};

alert (csi.cao98.rgi);


最佳方法取决于您使用对象的环境。

09-11 19:19