splice返回的对象具有未定义的属性。为什么呢?

时间:2017-02-03 10:50:42

标签: javascript

让我们将定义视为

    function Stone()  {
        this.x = 0;
        this.y = 400;

    };

我实例化一个对象

var st = new Stone;

var ll = [st];

var remov = ll.splice(0, 1);

alert(remov.x);

此处删除从列表中删除对象,但所有属性都设置为undefined。警报将提醒“未定义”。为什么会这样?

1 个答案:

答案 0 :(得分:6)

您需要访问当前项目。 Splice可以返回多个项目数组,如果它有一个项目,它仍然会返回一个包含一个项目的数组。所以你需要得到那个项目并访问它的属性。有关splice的更多信息,请参阅documentation

您可以记录remov并查看其中包含的内容。

function Stone()  {
   this.x = 0;
   this.y = 400;
};


var st = new Stone;

var ll = [st];

var remov = ll.splice(0, 1);
console.log(remov);
alert(remov[0].x);