Changeset 33841
- Timestamp:
- 09/01/2015 04:14:50 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/js/customize-base.js
r31893 r33841 75 75 76 76 magic = this; 77 78 /* 79 * If the class has a method called "instance", 80 * the return value from the class' constructor will be a function that 81 * calls invoked, along with all the object properties of the class. 82 */ 77 83 if ( this.instance ) { 78 84 magic = function() { … … 102 108 api.Class.applicator = {}; 103 109 110 /** 111 * Initialize a class instance. 112 * 113 * Override this function in a subclass as needed. 114 */ 104 115 api.Class.prototype.initialize = function() {}; 105 116 … … 282 293 }, 283 294 295 /** 296 * Get the instance of an item from the collection if only ID is specified. 297 * 298 * If more than one argument is supplied, all are expected to be IDs and 299 * the last to be a function callback that will be invoked when the requested 300 * items are available. 301 * 302 * @see {api.Values.when} 303 * 304 * @param {string} id ID of the item. 305 * @param {...} Zero or more IDs of items to wait for and a callback 306 * function to invoke when they're available. Optional. 307 * @return {mixed} The item instance if only one ID was supplied. 308 * A Deferred Promise object if a callback function is supplied. 309 */ 284 310 instance: function( id ) { 285 311 if ( arguments.length === 1 ) … … 289 315 }, 290 316 317 /** 318 * Get the instance of an item. 319 * 320 * @param {string} id The ID of the item. 321 * @return {[type]} [description] 322 */ 291 323 value: function( id ) { 292 324 return this._value[ id ]; 293 325 }, 294 326 327 /** 328 * Whether the collection has an item with the given ID. 329 * 330 * @param {string} id The ID of the item to look for. 331 * @return {Boolean} 332 */ 295 333 has: function( id ) { 296 334 return typeof this._value[ id ] !== 'undefined'; 297 335 }, 298 336 337 /** 338 * Add an item to the collection. 339 * 340 * @param {string} id The ID of the item. 341 * @param {mixed} value The item instance. 342 * @return {mixed} The new item's instance. 343 */ 299 344 add: function( id, value ) { 300 345 if ( this.has( id ) ) … … 308 353 this.trigger( 'add', value ); 309 354 355 // If a deferred object exists for this item, 356 // resolve it. 310 357 if ( this._deferreds[ id ] ) 311 358 this._deferreds[ id ].resolve(); … … 314 361 }, 315 362 363 /** 364 * Create a new item of the collection using the collection's default constructor 365 * and store it in the collection. 366 * 367 * @param {string} id The ID of the item. 368 * @param {mixed} value Any extra arguments are passed into the item's initialize method. 369 * @return {mixed} The new item's instance. 370 */ 316 371 create: function( id ) { 317 372 return this.add( id, new this.defaultConstructor( api.Class.applicator, slice.call( arguments, 1 ) ) ); … … 326 381 }, 327 382 383 /** 384 * Remove an item from the collection. 385 * 386 * @param {string} id The ID of the item to remove. 387 */ 328 388 remove: function( id ) { 329 389 var value; … … 360 420 dfd.done( ids.pop() ); 361 421 422 /* 423 * Create a stack of deferred objects for each item that is not 424 * yet available, and invoke the supplied callback when they are. 425 */ 362 426 $.when.apply( $, $.map( ids, function( id ) { 363 427 if ( self.has( id ) ) 364 428 return; 365 429 430 /* 431 * The requested item is not available yet, create a deferred 432 * object to resolve when it becomes available. 433 */ 366 434 return self._deferreds[ id ] = self._deferreds[ id ] || $.Deferred(); 367 435 })).done( function() {
Note: See TracChangeset
for help on using the changeset viewer.