Array.prototype.clear = function(){
this = new Array();
return true;
}
该代码引发了一个invalid assignment left-hand side
错误。
如何在他的方法之一中更改对象本身?
最佳答案
您不能更改 this
value 的引用指向,它是不可变的。
如果您想清除当前数组,只需将其length
属性设置为零即可:
Array.prototype.clear = function(){
this.length = 0;
return true;
};
编辑:查看对 sasuke 回答的评论,您可以像我的第一个示例一样清空数组,然后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
};
关于javascript - 如何在 javascript 中编写一个 mutator 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3488694/