在包含对象值的对象内创建一个数组

时间:2017-02-20 22:18:19

标签: javascript

我正在尝试使用此方法在包含此对象的变量的对象内创建一个数组,但是我收到了一个错误。 我用错了吗? 谢谢你的帮助

var data = {
    p:   [{content: "p",
           text: "this is random text" },
           {content: "p",
            text: "this is a second random text"
         }],
    img: [{content: "image",
           src: "data/img/1_1.png",
           alt: "This a an image"},
          {content: "image",
           src: "data/img/1_2.png",
           alt: "This is the second image"}],
    title: {content: "title",
            text: "Ceci est un titre"},
    //This doesn't work
    all: [this.title, this.p[0], this.img[0], this.p[1], this.img[1]]
}
//But this works
console.log(data.title);
console.log(data.p);
console.log(data.img);

1 个答案:

答案 0 :(得分:0)

this关键字在构造之前不会指向您当前的对象。

我猜测this是指您的下一个最高范围或Window对象。

在浏览器控制台中进行快速测试:

var a = {"test": this};
console.log(a["test"]); //Window

当您需要以这种方式聚合的数据或者找到更好的方式来填充该属性时,您最好立即进行查询。