如何用javascript编写mutator方法?

如何用javascript编写mutator方法?,javascript,Javascript,该代码在左侧引发了一个无效的赋值错误 如何在他的方法中更改对象本身?您不能更改指向的对象的引用,它是不可变的 如果要清除当前数组,只需将其length属性设置为零: Array.prototype.clear = function(){ this = new Array(); return true; } 编辑:查看对佐助答案的评论,您可以像我的第一个示例中那样清空数组,然后推送另一个数组的元素,例如: Array.prototype.clear = function(){

该代码在左侧引发了一个
无效的赋值
错误


如何在他的方法中更改对象本身?

您不能更改指向的对象的引用,它是不可变的

如果要清除当前数组,只需将其
length
属性设置为零:

Array.prototype.clear = function(){
    this = new Array();
    return true;
}
编辑:查看对佐助答案的评论,您可以像我的第一个示例中那样清空数组,然后
推送另一个数组的元素,例如:

Array.prototype.clear = function(){
  this.length = 0;
  return true;
};

您不能更改指向的对象的引用,它是不可变的

如果要清除当前数组,只需将其
length
属性设置为零:

Array.prototype.clear = function(){
    this = new Array();
    return true;
}
编辑:查看对佐助答案的评论,您可以像我的第一个示例中那样清空数组,然后
推送另一个数组的元素,例如:

Array.prototype.clear = function(){
  this.length = 0;
  return true;
};
那么:

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.test = function () {
  var newArray = ['foo', 'bar']; // new array elements
  this.length = 0; // empty original
  this.push.apply(this, newArray); // push elements of new array
};

如果我希望我的数组在方法运行后等于
['此数组已被清除]
,该怎么办?@Erik,您可以随时检查数组的长度属性。实际上不需要“isCleared”状态。如果我希望我的数组在方法运行后等于
[“此数组已被清除”]
,该怎么办?@Erik,您可以随时检查数组的长度属性。我不知道是谁投票否决了你,但是你的帖子比我的内容更丰富;尤其是
这部分的不可更改性+我不知道是谁否决了你,但你的帖子比我的内容更丰富;尤其是
这部分的不可更改性+从我这里得到1。