Ваш Javascript такой: -
function MyObject(options) { this.x = options.x; }
MyObject.prototype.someFunction = function() { return this.x + 1; }
MyObject.create(id, options) {
if (!this._instances) this._instances = {};
return this._instances[id] = new MyObject(options);
}
MyObject.getInstance(id) { return this._instances[id]; }
Ваш стартовый JavaScript выглядит так: -
MyObject.create(ClientID, {x: 99});
Другой код, который должен использовать экземпляр (скажем, в событии onclick на стороне клиента)
String.Format("onclick=\"MyObject.getInstance('{0}').someFunction()\", ClientID);
Обратите внимание на слабое влияние на глобальное пространство имен клиентов: в глобальное пространство имен добавляется только идентификатор MyObject, независимо от того, сколько экземпляров вашего элемента управления добавлено на страницу.