javascript - 如何在 javascript 中编写一个 mutator 方法?

标签 javascript

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/

相关文章:

javascript - NetSuite - 将文件写入 Suitelet 响应以直接下载文件

javascript - 转置数组时出现 “This operation is not supported from a callback function” 错误

Javascript对象Map,如果多个键映射到相同的值,如何从值中获取键

javascript - 将 JSON(作为字符串)转换为多维数组

javascript - 简单的 Javascript 程序 : Uncaught ReferenceError: x is not defined

javascript - .ajax() 在按下 ENTER 后刷新页面

javascript - 以这种方式使用对象属性是否可以接受?

javascript - 如何对复杂的 promise 链进行单元测试?

php - 本地比赛开球时间

javascript - esri javascript 异步打印