Это очень плохая идея, когда-либо добавлять к Object.prototype
.Возможность для конфликтов слишком велика.Вы можете использовать библиотеку, которая использует имя свойства, которое вы добавили в качестве маркера, делая одно, если оно присутствует в данном объекте, и другое, если его нет.(ES2015 фактически пришлось добавить совершенно новый тип имени свойства [Symbol
], чтобы встроенные операции имели такую логику [например, для получения итераторов и тому подобного].)
Но если выв любом случае, убедитесь, что добавляемое вами свойство не перечисляемо , используя Object.defineProperty
:
Object.defineProperty(Object.prototype, "forEach", {
value: function() { /*...*/ },
enumerable: false // This is actually the default, just here for emphasis
});
Я бы посоветовал, что где бы вы его не получили,Object.prototype.add
функция, вероятно, не место для обучения.