我在教程中看到了这段代码,但我不知道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
函数具有两个参数x
和y
,因此当我们插入一个对象时,例如:{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)
}