Array.prototype.clear = function(){
this = new Array();
return true;
}
該代碼引發了一個invalid assignment left-hand side
錯誤。如何在JavaScript中編寫mutator方法?
如何在其中一個方法中更改對象本身?
Array.prototype.clear = function(){
this = new Array();
return true;
}
該代碼引發了一個invalid assignment left-hand side
錯誤。如何在JavaScript中編寫mutator方法?
如何在其中一個方法中更改對象本身?
您無法更改this
value指向的參考,它是不可變的。
如果你想明確當前數組,你可以簡單地設置其length
屬性設置爲零:
Array.prototype.clear = function(){
this.length = 0;
return true;
};
編輯:放眼到佐助的答案提出的意見,可以清空數組作爲在我的第一個例子,然後push
另一陣列的元件,例如:
Array.prototype.test = function() {
var newArray = ['foo', 'bar']; // new array elements
this.length = 0; // empty original
this.push.apply(this, newArray); // push elements of new array
};
如何:
Array.prototype.clear = function(){
this.length = 0;
return true;
}
如果我想讓我的數組等於'['該數組已被清除']方法運行後該怎麼辦? – 2010-08-15 18:52:25
@Erik,你可以隨時檢查數組的長度屬性。應該不需要'isCleared'狀態。 – BGerrissen 2010-08-15 19:12:29
我不確定誰低估了你,但你的帖子比我的信息更豐富;尤其是這個部分的不變性。從我+1。 – sasuke 2010-08-15 19:34:42
謝謝@sasuke :) – CMS 2010-08-15 19:44:55