如何在javascript中编写mutator方法?

时间:2010-08-15 18:34:35

标签: javascript

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

该代码引发invalid assignment left-hand side错误。

如何在其中一种方法中更改对象本身?

2 个答案:

答案 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;
}