我们如何更新原型(prototype)中传递的对象?我已经创建了与 Array.reverse
类似的原型(prototype),但是如何修改原始对象?
Array.prototype.myReverse = function() {
let arr = [];
for (let i = 0; i < this.length; i++) {
arr.unshift(this[i]);
}
return arr;
}
let a = [9, 0, 3, 4];
console.log("Before ", a); // [9, 0, 3, 4]
console.log("reverse - ", a.myReverse()); // [4, 3, 0, 9]
//not modifying original object , how to modify original object
console.log("After ", a); // [9, 0, 3, 4]
我检查了几个例子,但我不知道如何更新原型(prototype)中的原始对象 我们如何创建一个原型(prototype)来更新原始对象(注意:反向是破坏性的——它会改变原始数组。)如果预定义数组不可能,那么我们如何创建类似的 MyArray 来编写用于更新原始对象的原型(prototype).
最佳答案
您不能直接分配this
,但您仍然可以更改它的属性。因此,保持您发布的代码的风格,您可以按照以下方式做一些事情:
Array.prototype.myReverse = function() {
let arr = [...this]
for (let i = 0; i < this.length; i++) {
this[i] = arr.pop()
}
}
关于Javascript原型(prototype)和修改原始对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59613346/