Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7015671
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T22:40:58+00:00 2026-05-27T22:40:58+00:00

I have searched and read for a few hours yet I still cant understand

  • 0

I have searched and read for a few hours yet I still cant understand the basic design pattern for creating a new object that has a choice of different methods (of the same name) that is set dependant on one of the arguments. here’s some code to explain what I am trying to do.
All advice and alternative approaches welcome. I hope someone can emancipate me form this cloud of ignorance.
Thanks

function BaseConstructor(whichMethods) {
    if (whichMethods==='a') {
         // do something to incorporate methodSetA
    }
    else if (whichMethods==='b') {
        // do something to incorporate methodSetB
    }

    this.init();
};

var methodSetA = {
    init: function() {
        // do initialisation A way
    },
    speak: function() {
        alert('i speak AAA way')
    }
};

var methodSetB = {
    init: function() {
        // do initialisation B way
    },
    speak: function(){
        alert('i got BBB all the way')
    }
};

thing = new BaseConstructor('b'); 
// b is an instance of BaseConstructor and has done the bWay init() function

thing.speak() // return alert 'i got BBB all the way'
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T22:40:58+00:00Added an answer on May 27, 2026 at 10:40 pm

    You can do it like this using a factory function (a regular function that creates the appropriate object for you):

    function BaseConstructor(whichMethods) {
        var elem;
        if (whichMethods==='a') {
             elem = new MethodSetA();
        } else if (whichMethods==='b') {
             elem = new MethodSetB();
        } else {
             // figure out what to do here if whichMethods is neither of the previous options
        }
    
        elem.init();
        return(elem);
    };
    

    And invoke it as a regular function call:

    var thing = BaseConstructor('b');
    thing.speak();
    

    Note: there is no use of new with BaseConstructor() as it’s a regular function call.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have searched and read about mvc. I understand MVC. I am only stuck
I have searched for a CGI and read about it but nothing useful found.
I have searched here, GooBingHooVista'd the world and read this related question for VS
I have read the documentation and searched all over but I can't find how
I have searched all morning and yesterday afternoon and still cannot find an solution
I have searched apple's documentation and other posts on Stack Overflow, but I'm still
I've searched around on a lot of forums but have yet to find an
Apologies, but I have searched and read previous answers on this question but couldn't
First of all, I have searched and read similar threads and I have tried
at first. I have searched and read here a lot and googling with bing

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.