существует ли способ скопировать глобальный объект (Массив, Строка...) и затем расширить прототип копии, не влияя на исходную? Я попробовал этим:
var copy=Array;
copy.prototype.test=2;
Но если я проверяю Array.prototype.test
это 2, потому что объект Массива передается ссылкой. Я хочу знать, существует ли способ заставить переменную "копии" вести себя как массив, но это может быть расширено, не влияя на объект исходного массива.
Хороший вопрос. У меня такое чувство, что вам, возможно, придется написать для этого класс-оболочку. По сути, с помощью copy.prototype.test = 2
вы устанавливаете прототип класса, который (конечно) будет виден для всех экземпляров этого класса.
Вместо того, чтобы расширять прототип, почему бы вам просто не расширить переменную копии. Например, добавляя функцию
copy.newFunction = function(pParam1) {
alert(pParam1);
};