例如
var arr = [1,3];
arr.empty() // changes arr to [];
Array.prototype.empty = function(){
this = []; // this throws error
}
请帮助我理解,解决方法是什么。
答案 0 :(得分:1)
使用Array.splice()
来变异(删除)数组的内容,而不是替换它:
Array.prototype.empty = function(){
this.splice(0, this.length);
}
var arr = [1,3];
arr.empty();
console.log(arr);

答案 1 :(得分:0)
什么是解决方法?
首先,问题是:你无法改变这个'关键词。解决方案非常简单!
下面:
Array.prototype.empty = function(){
this.length = 0;
}
由于数组长度设置为零,因此无法保留任何条目!
所以最后的代码:
Array.prototype.empty = function(){
this.length = 0;
}
var arr = [1, 3];
console.log(arr);
arr.empty();
console.log(arr);