我在教程中看到了这段代码,但我不知道unshift方法中发生了什么。我了解.unshift()在js中的作用,但我不了解此语法的作用,尤其是它被分别编写为x:x和y:y的事实。

insert: function(x, y) {
        this._queue.unshift({x:x, y:y}); // unshift prepends an element to array
        this.last = this._queue[0];
    },

最佳答案

Unshifting an element to an array只是将该元素插入数组的前面。

在这里,我们有一个名为_queue的数组,在其中将{x:x, y:y}插入到前面。

因此,如果队列看起来像这样:

_queue: [
  {x:1, y:1},
  {x:2, y:2},
  {x:3, y:3},
  ...
];


现在看起来像这样:

_queue: [
  {x:x, y:y}, // what you had just inserted
  {x:1, y:1},
  {x:2, y:2},
  {x:3, y:3},
  ...
];


调用此函数的insert函数具有两个参数xy,因此当我们插入一个对象时,例如:

{x:x, y:y}


这实际上意味着我们要插入一个对象,其字段为:

{
  x: x, //(whatever argument was passed in for `x` when the function was called)
  y: y  //(whatever argument was passed in for `y` when the function was called)
}

09-25 18:14