Определение методов для базовых классов внутри песочницы в JavaScript

Джон-Дэвид Дэлтон выпустил Fusebox, библиотеку которая позволяет работать с определяемыми методами для базовых классов (в англ. литературе их называют natives) внутри отстраненной песочницы:

Возможность расширения базовых классов в JavaScript дает вам возможность приспособить язык под ваши нужды. Вы можете добавить такой метод как «hello world».capitalize () или реализовать отсутствующие функции,  как например [1,2,3].indexOf (2).  Проблема в том что библиотеки / фреймворки / скрипты могут переписывать базовые методы javascript'а или методы друг друга, что может привести к неожиданным результатам. Fusebox — это урезанная версия компонента «песочница» из  библиотеки FuseJS. Fusebox позволяет избежать проблем описанных выше, убирая работу с определением методов базовых классов в песочницу.

Например:

JavaScript:
  1. var fb = Fusebox();
  2. fb.Array.prototype.hai = function() {
  3. return fb.String("Oh hai, we have " + this.length + « items.»);
  4. };
  5.  
  6. fb.Array(1,2,3).hai(); // "Oh hai, we have 3 items."
  7. typeof window.Array.prototype.hai; // undefined

У Джона есть серия коротких скринкастов, описывающих работу с песочницей и техники благодаря которым это стало возможным.

  1. Sandboxed Natives 101: Screencast One
  2. How to create a sandbox: Screencast Two
  3. How to create a Fusebox: Screencast Three
  4. The Final Countdown: Screencast Four

Есть чему поучится. Обидно что приходится запоминать все эти манипуляции, эту магию... Но это JavaScript, он такой какой есть.

Источник

Возможно я немного напортачил с терминологией, поправьте если что не так...