Utilizing prototype-based object-oriented programming to create nested classes

Below is the code snippet I am trying to implement:

function A(){
    this.init.apply( this, arguments );
}

A.prototype = {

    name: "",

    init: function( nameOfSomething ){

        this.name = nameOfSomething;

    }

};

This setup allows me to do the following:

var something = new A();

Now, I am looking to include another class within the "A" class. Let's call it B.

What I aim to achieve is:

something.B = new B();

something.B.name = "testing";

I envision that B will have various properties and methods that can be customized!

Any insights or suggestions are appreciated!

Answer №1

To create an "extension" of an object from "class" A in Javascript (keeping in mind that Javascript does not have traditional classes), you can try the following [not tested]:

function B () {}
B.prototype = new A();
B.prototype.init("bla");

var b = new B();
b.name; /* should return "bla" */

However, it is important to note that this may not achieve the desired outcome. For more insights on constructors and potential issues, refer to .

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

javascript primary inquiry

When a page contains an iframe within an iframe, is it necessary to use parent.parent to access the top frame? Is there a quicker way to navigate to the root of the page instead of using parent.parent; or even parent.parent.parent? ...

Swap out jQuery function for vanilla JavaScript

I am exploring ways to convert this jQuery function into pure JavaScript. $('#myTable span.hide').click(function () { $(this).closest("tr").remove(); return false; }); I attempted the following replacement, but unfortunately, it does n ...

Initiate a second click action when the button is clicked for the first time

Upon clicking the "Continue" button in my HTML, an overlay is displayed. This overlay contains a "Skip and Continue" button. My goal is to have the second overlay appear directly on the first click of the "Continue" button, without the initial overlay show ...

After installing grunt, the Gruntfile cannot be located. How can this issue be resolved?

After installing grunt, I encountered a problem. Despite trying some commands suggested on stackoverflow in this How to install grunt and how to build script with it, running the grunt command still shows the same result. What steps should I take next?ht ...

Perform time update every second

Is it feasible to have my timeupdate function run every second? (Using VUE CLI) @timeupdate="videoSecond" videoSecond(){ let Second = this.player.currentTime(); let CaptureList = this.capturesList; CaptureList.forEach(element => ...

Refreshing information within a table using Ajax Prototype

For my current project, I am utilizing PrototypeJS. I have implemented Ajax.PeriodicalUpdater to insert real-time data as required. However, I am facing an issue where the data is not getting replaced inside a specific table. Below is the HTML code snippet ...

Set a variable in PHP by passing a value

In continuation of my previous post, I realized I missed a point and needed to start a new thread. Thankfully, I found a solution for the issue in my previous post and here is the final code: Scrapping code not working in php <?php $html = file_get_co ...

Encountering an "Unsupported Media Type" error while attempting to generate an Hpalm defect through the rest api

I have been attempting to create a defect through the hpalm rest api, but I keep encountering a "415 Unsupported Media Type" error. Here's what I've done so far: var postOptions = { jar: cookies, accept: 'application/json', ...

Automatically refresh the D3 Sunburst visualization when the source json is modified (items added or removed)

I'm a beginner in D3 and I'm attempting to update the chart dynamically if the source JSON is modified. However, I'm facing difficulties in achieving this. Feel free to check out this plunkr Js: var width = 500, height = 500, radi ...

Is it possible to assign functions to each keystroke that does not correspond to a specific keybinding in Angular?

In Angular, there are events tied to keybindings or actions like (focus), (blur), (keydown), and more. You can bind specific keybinds to certain keys as well, such as (keydown.enter), (keydown.alt), etc. Is there a method to trigger an event only when it ...

Assign an identifier to the HTML helper Html.EditorFor

When using a textbox created with the HTML helper "@Html.EditorFor", there may be a need to perform some action with JavaScript on its change event. In order to do this, an ID needs to be set for the textbox. For example, if you need to set a string value ...

Substitute a single occurrence of the dollar sign with an HTML tag

I have been attempting to insert an HTML tag into a price on my e-commerce website. Specifically, I am looking to add a tag between the "$" and the numerical value (e.g. $5.00), but I am unable to locate the core file where I can place the code between the ...

Struggling to make PayPal Cordova Plugin function properly in both production and sandbox modes

While using the cordova paypal plugin and switching to sandbox mode, I encountered an error. The plugin can be found at https://github.com/paypal/PayPal-Cordova-Plugin https://i.stack.imgur.com/lD2EH.png Running the plugin in PayPalEnvironmentNoNetwork m ...

Removing an unnamed cookie

A mysterious cookie mysteriously appeared on my website, courtesy of Sharethis (value "sharethis_cookie_test"). This cookie is causing all sorts of session issues for me specifically on Chrome. Despite removing the sharethis plugin from my site, this pesky ...

What is the best approach to choose the thead element from a dynamically created table?

My table in JavaScript/JQUERY is dynamically constructed. Once the table is created, I am attempting to target the thead element. Here is a snippet of my code: $(document).ready(function(){ buildTbl(); }); function buildTbl() { var tbl = '< ...

The second Ajax request recreates the HTML content, resulting in duplication

I am trying to implement an AJAX request that will prepend a specific html block when link 1 is clicked in my DOM: $("#link1").on("click", function(){ $.get("myBlock.html", function(data){ $(".wrapper").prepend(data); }); }); This html block, which co ...

Can you explain the significance of `Component<Props>` in React Native?

Recently, I started a new react-native project and noticed a change in the component syntax. It now reads export default class WelcomeScreen extends Component<Props>, which is different from what it used to be, export default class WelcomeScreen exte ...

Determining the selected option's value made by the user

On my index.php file, which contains the form and function, I have the following code: $(function() { $.ajax({ type: "POST", url: "invtype.php", data: "getrevenuetype=true", success: function(b){ $("#revenue ...

Step-by-step guide for dynamically including dropdown options

Is there a way to dynamically add a dropdown using JavaScript? I currently have a dropdown with numbers that creates another dropdown when selected. However, I want to add the dynamic dropdown through JavaScript. How can I achieve this? Below is the PHP ...

Caching HTML5 videos in Google Chrome

I am currently in the process of building a website and have successfully added an HTML5 video. However, I encountered an issue when attempting to change the video file in the background for users to upload a new one. Despite updating the video URL, Chro ...