让我们考虑一个定义为

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

    };

我实例化一个对象
var st = new Stone;

var ll = [st];

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

alert(remov.x);

在这里,remov从列表中删除该对象,但是所有属性均设置为undefined。该警报将警报“未定义”。为什么会这样呢?

最佳答案

您需要访问当前项目。 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);

关于javascript - 拼接返回的对象具有未定义的属性。为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42022502/

10-11 12:01