Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #7988

Re: calling function within (function() {...})();

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

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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