2012-11-16 26 views
0

我試圖通過JQuery中的一個變量循環,並在以下Coffeescript中重新指定this的值。JQuery - SyntaxError:保留字「this」不能被分配

$.each data.rows, -> 
    completion_time = [this[0], new Date(new Date('Jan 01 2000').getTime() + this[1])] 
    this = completion_time 

然而,這會產生以下錯誤消息:

SyntaxError: reserved word "this" can't be assigned

在每次迭代的this值看起來是這樣的:

["abc123", 12302103, 1230132, 1230123]

我試圖做的是重新分配它的值爲:

["abc123", 12302103]

我試着分配this.value以及沒有骰子。有什麼建議麼?

回答

5

您不能重新分配this。您可以修改this包含新陣列

我受不了CoffeScript中的元素,所以我就表明它在JS

// Clear elements from the array 
this.length = 0; 
// Add each element in the new array 
this.push.apply(this, completion_time); 
+0

@JaunMendes謝謝,這似乎已經完成了帽子戲法。爲什麼'this'不能被重新分配給別的東西有沒有特別的原因? – Noz

+1

是的,因爲'this'指向對象本身,重新分配它只會用於你正在查看的變量。你需要對對象的引用來重新分配它,而JS沒有這些引用類型,它總是一個指向對象的指針,從來沒有指向指針的指針,如果這是有道理的。用不同的方式來解釋它,改變'this'不會改變所有現有的對同一個對象的引用。通過改變'this'而不是重新分配它,對象的所有其他引用都將受到影響 –

+0

@CyleHunter考慮寫這個'this = null'是非感性的,你會使得對象失效與...一起工作 –

相關問題