mirror of
				https://github.com/flynx/object.js.git
				synced 2025-10-31 03:20:09 +00:00 
			
		
		
		
	added parentCall(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									e44af98f5b
								
							
						
					
					
						commit
						f8c03077f1
					
				| @ -208,6 +208,14 @@ parent(<method>, <name>, <this>) | |||||||
|     -> <parent-method> |     -> <parent-method> | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | Get parent method and call it | ||||||
|  | ``` | ||||||
|  | parentCall(<method>, <this>) | ||||||
|  | parentCall(<method>, <name>, <this>) | ||||||
|  |     -> <result> | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| Mixin objects into a prototype chain | Mixin objects into a prototype chain | ||||||
| ``` | ``` | ||||||
| mixin(<root>, <object>, ...) | mixin(<root>, <object>, ...) | ||||||
|  | |||||||
							
								
								
									
										34
									
								
								object.js
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								object.js
									
									
									
									
									
								
							| @ -88,9 +88,9 @@ function(obj, name, callback){ | |||||||
| 
 | 
 | ||||||
| // Find the next parent method in the prototype chain.
 | // Find the next parent method in the prototype chain.
 | ||||||
| //
 | //
 | ||||||
| // 	parent(meth, this)
 | // 	parent(<meth>, <this>)
 | ||||||
| // 	parent(meth, name, this)
 | // 	parent(<meth>, <name>, <this>)
 | ||||||
| // 		-> meth
 | // 		-> <meth>
 | ||||||
| //
 | //
 | ||||||
| //
 | //
 | ||||||
| // NOTE: there are cases where method.name is not set, so a name can be 
 | // NOTE: there are cases where method.name is not set, so a name can be 
 | ||||||
| @ -112,6 +112,26 @@ function(method, name, that){ | |||||||
| 	return that.__proto__[name] } | 	return that.__proto__[name] } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | // Find the next parent method and call it...
 | ||||||
|  | //
 | ||||||
|  | // 	parentCall(<meth>, <this>, ...)
 | ||||||
|  | // 	parentCall(<meth>, <name>, this>, ...)
 | ||||||
|  | // 		-> <res>
 | ||||||
|  | //
 | ||||||
|  | // NOTE: this is just like parent(..) but will call the retrieved method,
 | ||||||
|  | // 		essentially this is a shorthand to:
 | ||||||
|  | // 			parent(method, name, this).call(this, ...)
 | ||||||
|  | // 		or:
 | ||||||
|  | // 			parent(method, this).call(this, ...)
 | ||||||
|  | // NOTE: for more docs see parent(..)
 | ||||||
|  | var parentCall = | ||||||
|  | module.parentCall = | ||||||
|  | function(method, name, that, ...args){ | ||||||
|  | 	return typeof(name) == typeof('str') ? | ||||||
|  | 		parent(method, name, that).call(that, ...args) | ||||||
|  | 		: parent(method, that).call(that, ...args) } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| //---------------------------------------------------------------------
 | //---------------------------------------------------------------------
 | ||||||
| 
 | 
 | ||||||
| @ -182,9 +202,11 @@ function(root, ...objects){ | |||||||
| // 			var O = function(){}
 | // 			var O = function(){}
 | ||||||
| // 			// new is optional...
 | // 			// new is optional...
 | ||||||
| // 			var o = new makeRawInstance(null, O)
 | // 			var o = new makeRawInstance(null, O)
 | ||||||
| //
 | // NOTE: .__new__(..) is intentionaly an instance method (contary to 
 | ||||||
| // XXX Q: should .__new__(..) be a class method???
 | // 		Python) this is done because there are no classes in JS and 
 | ||||||
| // 		...in a prototype model I'm not sure...
 | // 		adding and instance constructor as a class method would create 
 | ||||||
|  | // 		unneccessary restrictions both on the "class" object and the 
 | ||||||
|  | // 		instance...
 | ||||||
| var makeRawInstance =  | var makeRawInstance =  | ||||||
| module.makeRawInstance = | module.makeRawInstance = | ||||||
| function(context, constructor, ...args){ | function(context, constructor, ...args){ | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "ig-object", |   "name": "ig-object", | ||||||
|   "version": "2.4.0", |   "version": "2.4.1", | ||||||
|   "description": "", |   "description": "", | ||||||
|   "main": "object.js", |   "main": "object.js", | ||||||
|   "scripts": { |   "scripts": { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user