Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #7988
| Message-ID | <8928443.SEqChMirdb@PointedEars.de> (permalink) |
|---|---|
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
| Organization | PointedEars Software (PES) |
| Date | 2011-11-04 15:49 +0100 |
| Subject | Re: calling function within (function() {...})(); |
| Newsgroups | comp.lang.javascript |
| References | <j-mdnaRhWZiHRS7TnZ2dnUVZ_uednZ2d@westnet.com.au> <j90o0s$vmv$1@dont-email.me> <m21utoav44.fsf@nntp.bednarz.nl> |
| Followup-To | comp.lang.javascript |
Followups directed to: comp.lang.javascript
Eric Bednarz wrote:
> Gregor Kofler <usenet@gregorkofler.com> writes:
>> Am 2011-11-04 13:18, Andrew Poulos meinte:
>>> If I have this
>>>
>>> var x = (function(){
>>> return {
>>> a : function(){},
>>> b : function(){}
>>> };
>>> })();
>>>
>>> how do I call 'b' from within 'a'?
>
> x.b();
>
> but I'd rather have something like
>
> var x = (function () {
> function a() {
> b();
> }
> function b() {
>
> }
> return {
> a: a,
> b: b
> };
> }());
There is no inherent advantage in that. In fact, it is slightly less
efficient than the original code because the `a' and `b' identifiers need to
be resolved first, and it requires more maintenance effort because one needs
to need track the identifiers.
> And descriptive identifiers.
ACK
>> Works as expected.
>>
>> var x = (function(){
>> return {
>> a : function(){this.b();},
>> b : function(){window.alert("hooray!"); console.log(this); }
>> };
>> })();
>>
>> x.a();
>>
>> // -> alert dialog
>> // Object { a=function(), b=function() }
>
> window.setTimeout(x.a, 0);
window.setTimeout(function() { x.a(); }, 10);
The asynchronous call is unnecessary here, though.
PointedEars
--
realism: HTML 4.01 Strict
evangelism: XHTML 1.0 Strict
madness: XHTML 1.1 as application/xhtml+xml
-- Bjoern Hoehrmann
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
calling function within (function() {...})(); Andrew Poulos <ap_prog@hotmail.com> - 2011-11-04 23:18 +1100
Re: calling function within (function() {...})(); Gregor Kofler <usenet@gregorkofler.com> - 2011-11-04 14:06 +0100
Re: calling function within (function() {...})(); Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2011-11-04 14:13 +0100
Re: calling function within (function() {...})(); Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-11-04 15:49 +0100
Re: calling function within (function() {...})(); Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2011-11-04 16:35 +0100
Re: calling function within (function() {...})(); Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-11-04 20:44 +0100
Re: calling function within (function() {...})(); Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2011-11-04 21:16 +0100
Re: calling function within (function() {...})(); Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-11-04 21:24 +0100
Re: calling function within (function() {...})(); Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-11-04 21:46 +0100
Re: calling function within (function() {...})(); Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2011-11-04 23:29 +0100
Re: calling function within (function() {...})(); Scott Sauyet <scott.sauyet@gmail.com> - 2011-11-04 10:29 -0700
Re: calling function within (function() {...})(); Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-11-09 15:17 +0100
Re: calling function within (function() {...})(); Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2011-11-09 20:13 +0100
Re: calling function within (function() {...})(); Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-11-11 23:26 +0100
Re: calling function within (function() {...})(); Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2011-11-11 23:31 +0100
Re: calling function within (function() {...})(); Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-11-12 00:38 +0100
csiph-web