Function named and called by a parameter value?

Discussion in 'Javascript' started by Tuxedo, Feb 13, 2012.

  1. Tuxedo

    Tuxedo Guest

    Is it possible to create a dynamically named function by a parameter and
    then run the created function within the block of the initial function by
    parameter reference, without literally typing the name of the
    parameter-named function within the initial function block? Something like:

    function main_function(param){

    function ??? (){ // create a function named by the parameter value
    d = document.title;
    alert(d);
    }

    return ???() // run sub_function by a parameter reference

    }

    main_function('sub_function') // name the function, e.g. 'sub_function'

    Surely the construct would not look close to the above...

    Thanks for any ideas!

    Tuxedo
     
    Tuxedo, Feb 13, 2012
    #1
    1. Advertising

  2. Tuxedo schrieb:
    > Is it possible to create a dynamically named function by a parameter and
    > then run the created function within the block of the initial function by
    > parameter reference, without literally typing the name of the
    > parameter-named function within the initial function block? Something like:


    It is exactly the same as with your variables in your former thread. As
    you store objects in variables, and functions are objects, and you can
    store any values within objects:
    Use objects!

    They work as maps. Surely you already know accessing object propertys
    with the dot syntax:

    var o = {a:1:, b:3};
    o.a; // 1

    But you can also access them with bracket syntax:

    var propname = "b";
    o[propname]; // 3

    So you will use a object for your problem, where you can store any
    values and even functions:

    var myfn = function(params) { <body>; };

    is also a valid way to store functions. Of course this one has no "name"
    (you can't set names of functions), but you can easily call it with

    myfn("something");

    > function main_function(param){
    >
    > function ??? (){ // create a function named by the parameter value
    > d = document.title;
    > alert(d);
    > }
    >
    > return ???() // run sub_function by a parameter reference
    >
    > }
    >
    > main_function('sub_function') // name the function


    That makes no sense. Why should you want to "name" a internal function,
    which you never will see, and which is called inside the global
    function? Just use

    function main_function() { // no "param"
    return alert(document.title);
    }

    regards,
    Bergi
     
    Andreas Bergmaier, Feb 13, 2012
    #2
    1. Advertising

  3. Tuxedo

    Tuxedo Guest

    Stefan Weiss wrote:

    [...]

    > It's commendable to reduce posted code examples to the required minimum,
    > but in this case I'd like to see the bigger picture :)


    I will try and post the bigger picture when I have a bit more workable code.

    Tuxedo
     
    Tuxedo, Feb 14, 2012
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Terry Reedy
    Replies:
    5
    Views:
    275
    Bruno Desthuilliers
    May 11, 2009
  2. Abdul Mohsin
    Replies:
    1
    Views:
    266
  3. AzamSharp
    Replies:
    2
    Views:
    180
  4. Tuxedo
    Replies:
    7
    Views:
    746
    Tuxedo
    Feb 14, 2012
  5. Christof Warlich

    named parameter idiom and inheritance

    Christof Warlich, Jun 14, 2012, in forum: C++
    Replies:
    8
    Views:
    662
    Alain Ketterlin
    Jun 17, 2012
Loading...

Share This Page