英文:
Manipulate the `this` object using a newly created Array.prototype method
问题
我正在尝试扩展JavaScript中的Array
对象,就像这样。我试图使用原型来操纵数组中的值(存在于this
对象中),就像在该函数中一样。
function clear() {
this = [];
}
Object.defineProperty(Array.prototype, 'clear', { value: clear, enumerable: true, });
它给我一个错误
Uncaught SyntaxError: Invalid left-hand side in assignment
我知道this
是不可变的。有什么解决方法吗?我不想创建一个模拟Array
构造函数的新对象。
英文:
I am trying to extend the Array
object in Javascript exactly like this. I am trying to manipulate the values of the array (present in the this
object) using the prototype like in the function.
function clear() {
this = [];
}
Object.defineProperty(Array.prototype, 'clear', { value: clear, enumerable: true, });
It is giving me a error
Uncaught SyntaxError: Invalid left-hand side in assignment
I am aware that the this
is immutable. What is the workaround? I am not looking to create a new Object that emulates the Array constructor.
答案1
得分: 1
这是一种选项:
this.splice(0, this.length)
我猜你也可以直接使用 this.length=0
,但这感觉有点巧妙。
英文:
One option would be
this.splice(0, this.length)
I guess you can also do this.length=0
directly, but it feels kinda hacky.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论