使用新创建的 Array.prototype 方法操作“this”对象 [duplicate]

Manipulate the `this` object using a newly created Array.prototype method [duplicate]

提问人:Gary 提问时间:2/7/2023 更新时间:2/7/2023 访问量:36

问:

我正在尝试像这样在 Javascript 中扩展对象。我正在尝试使用原型操作数组的值(存在于对象中),就像在函数中一样。Arraythis

function clear() {
    this = [];
}
Object.defineProperty(Array.prototype, 'clear', { value: clear, enumerable: true, });

它给了我一个错误Uncaught SyntaxError: Invalid left-hand side in assignment

我知道是不可变的。解决方法是什么?我不想创建一个模拟 Array 构造函数的新 Object。this

JavaScript 数组 对象 这个 原型

评论


答:

1赞 gog 2/7/2023 #1

一种选择是

this.splice(0, this.length)

我想你也可以直接做,但感觉有点骇人听闻。this.length=0