Предположим, что я придумал определенную функцию сортировки, которую хочу поместить в прототип некоторого объекта на основе массива (я сам здесь использую Array). Я могу сделатьМожет ли метод узнать «это» своего родительского объекта?
Array.prototype.specialSort = function...
но то, что я действительно хотел сделать, это
Array.prototype.sort.special = function...
проблема, конечно, в том, что, когда она называется, она не будет знать об объекте Array, он будет знать только о сортировке, поэтому он не может сортировать. Есть ли магическое заклинание, чтобы пройти «это» вниз по дереву?
Вторичный вопрос (так как ответ на основной вопрос, скорее всего, «нет»): Что бы вы сделали, чтобы реализовать понятие «под-методов» с максимальной элегантностью?
Непонятный вопрос. Кроме того, указатель «this» имеет ** ничего **, чтобы определить, как определена функция. Это полностью определено во время вызова. – Pointy
Кроме того, не утруждайте себя попыткой подкласса Array - вам действительно не удастся добиться этого: http://perfectionkills.com/how-ecmascript-5-still-does-not-allow-to-subclass-an-array/ – Pointy
Pointy: Указатель «this» используется при определении метода, который я надеюсь делать здесь. Это будет метод сортировки, но вместо того, чтобы переопределять встроенный метод сортировки, это будет отличный метод. Но поскольку это метод, который сортируется, и потому, что у меня может быть несколько специальных функций сортировки, было бы желательно, чтобы они «группировали» их все в рамках существующей функции сортировки. Но если я это сделаю, они не знают о массиве, который они должны сортировать. –