Array.prototype.clear = function(){
this = new Array();
return true;
}
该代码引发invalid assignment left-hand side
错误。
如何在其中一种方法中更改对象本身?
答案 0 :(得分:5)
您无法更改this
value指向的引用,它是不可变的。
如果要清除当前数组,只需将其length
属性设置为零:
Array.prototype.clear = function(){
this.length = 0;
return true;
};
编辑:查看对sasuke答案的评论,您可以像我的第一个示例中那样清空数组,然后push
另一个数组的元素,例如:< / p>
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
};
答案 1 :(得分:2)
怎么样:
Array.prototype.clear = function(){
this.length = 0;
return true;
}