我想扩展对象原型,添加forEach
方法。
我在这里遵循了这个指南,但这会导致创建forEach原型的其他东西失败。在我的例子中,我得到了错误与RxJS.
是否有一种方法来添加原型Object.forEach
,但保持它可写的其他人?
if (!Object.prototype.forEach) {
Object.defineProperty(Object.prototype, 'forEach', {
value: function (callback, thisArg) {
if (this == null) {
throw new TypeError('Not an object');
}
thisArg = thisArg || window;
for (var key in this) {
if (this.hasOwnProperty(key)) {
callback.call(thisArg, this[key], key, this);
}
}
}
});
}
闪电战这里
看来writable: true
起作用了
参见:define property
Object.defineProperty(Object.prototype, 'forEach', {
writable: true,
value: function (callback: ObjectForEachCallback, thisArg: any) {
if (this == null) {
throw new TypeError('Not an object');
}
thisArg = thisArg || window;
for (const key in this) {
if (this.hasOwnProperty(key)) {
const res = callback.call(thisArg, this[key], key);
if (res === false) {
break;
}
}
}
},
});