По моему не удачно написано в документации.
В исходниках нет нечего подобного.
Посмотри сам, нет не одной строчки ответственной за копирование прототипа при создании экземпляров
1)запускается конструктор
2) констроктор обнаруживает что в this Нет this._createWidget и вызывает new constructor( options, element )
3) теперь уже вызванный через new конструктор обнаруживает что в this есть _createWidget, ведь это уже не функция а конструктор обьекта, обнаружив это он вызывает createWidget
constructor = $[ namespace ][ name ] = function( options, element ) {
// allow instantiation without "new" keyword
if ( !this._createWidget ) {
return new constructor( options, element );
}
// allow instantiation without initializing for simple inheritance
// must use "new" keyword (the code above always passes args)
if ( arguments.length ) {
this._createWidget( options, element );
}
};
Собственно к этому моменту объект уже создан, в прототие общие методы. Дальше просто идет инициализация виджета отвечает за нее createWidget
Create widget занимается тем что подготавливает Опции к передачи в INIT
а так же инициализирует некоторые свойства вроде this.element
сохраняет ссылку на обьект созданный конструктором в data (
$.data( element, this.widgetFullName, this ); )
вызывает init и create,
поджигает событие "create"
_createWidget: function( options, element ) {
element = $( element || this.defaultElement || this )[ 0 ];
this.element = $( element );
this.uuid = uuid++;
this.eventNamespace = "." + this.widgetName + this.uuid;
this.options = $.widget.extend( {},
this.options,
this._getCreateOptions(),
options );
this.bindings = $();
this.hoverable = $();
this.focusable = $();
if ( element !== this ) {
$.data( element, this.widgetFullName, this );
this._on( true, this.element, {
remove: function( event ) {
if ( event.target === element ) {
this.destroy();
}
}
});
this.document = $( element.style ?
// element within the document
element.ownerDocument :
// element is window or document
element.document || element );
this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
}
this._create();
this._trigger( "create", null, this._getCreateEventData() );
this._init();
},