Executing a nested function using a string parameter (window[]) in JavaScript

Is it possible to call a nested function with just a string? For example:

function oot(wha)   {
        function inn(wha)
          {
          First.innerHTML+="Inner ["+wha+"]";
          }
   oot.inn = inn;
   Second.innerHTML+="Outer ["+wha+"]";
                    }
 oot("1");  
 oot.inn("2");  //works okay
 window["oot"]("3");    //works okay
 window["oot.inn"]("4");    //<The problem, doesn't work.
 window["oot"]["inn"]("4");  //Works, thanks. 

I have made some edits to improve code readability and provide a solution. If there is no straightforward way to achieve this with a single string input, I will wait for a few hours before marking the question as unanswered in case there is another solution.

Answer №1

To access nested Objects, you can use the following syntax:

window["oot"]["inn"]("4");

Alternatively, you can also do it like this:

window.oot.inn("4")

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

Cypress and VueJS: How to target elements that are dynamically generated following a specific user interaction

I am currently testing a new feature where a button will only appear for the user to click after they have completed another action. Before proceeding with the action, I am verifying if the button exists: cy.get('span') .contains('Selec ...

Mastering the art of utilizing $.get(url, function(data) in pure JavaScript

I am currently exploring how to achieve the equivalent of $.get(url,function(data) { code }; in pure JavaScript. function fetchImage(keyword){ if(!ACCESS_KEY){ alert("Please update your access key"); return; } var request = new XMLHttpRequ ...

I'm having trouble with my TextGeometry not displaying on screen. Can someone help me figure

Here is the code I am using for Three.js: <html> <head> <title>My first Three.js app</title> <style> body { margin: 0; } canvas { width: 100%; height: 100% } </style> ...

When working with JavaScript, it's important to note that any reference used outside of the catch block

Our JavaScript code includes a try...catch block that functions as follows: We import the customFile using: const ourCustomClassFile = require('./customFile'); In the customFile.js file, we have defined a function const sendErrorNotification ...

Error encountered in jQuery's addClass and removeClass functions: Unable to read the property 'length' of an undefined value

Upon loading my page, I aim to have some of the div elements hidden initially and display only one. Here is a script that accomplishes this goal: <script> $(document).ready(function () { $(".total").click(function () { $("#pi ...

Struggling to display a collection of items in React

Below is the code snippet : import React, { Component } from 'react'; import axios from 'axios'; import _ from 'lodash'; import Loader from './Loader'; export default class Main extends Component { constructor(p ...

React's connect method is causing issues with my test case

Attempting to create a test case for my jsx file... Took a sample test case from another jsx file... The other file does not have the connect method... But this new file contains the connect method... Believe this is causing issues with my test case... Any ...

The function is failing to return a false value

I have encountered a problem with my code - it works fine in Chrome but not in IE or Firefox. I've tried using return false; and event.preventDefault() but they don't seem to be effective in Firefox. The issue arises when the button grabs informa ...

Issues with implementing Bootstrap datetimepicker in ClojureScript

Recently, I encountered an issue while attempting to integrate Bootstrap datetimepicker into my clojurescript project. Here's the snippet of code I used: (.datetimepicker (js/$ "#dateid") Unfortunately, I kept running into a frustrating Unc ...

Unable to properly structure data in JSON request

Trying to fill JSON request with data from phpsearch.php file (displayed below) <?php include "base.php"; $name = $_GET["name"]; $query = "SELECT lat, lng FROM markers WHERE name = '".$name."'"; $result = mysql_query($query); $json = array(); ...

I am unable to retrieve dynamic data from the database

Storing data in a MySQL database has been successful for me. I've been utilizing PDO in PHP to fetch the data and then converting it to JavaScript using json_encode. However, I keep encountering the output NaN when implementing a specific scenario. It ...

How can I combine three dynamic dropdown menus into a single dynamic multi-level dropdown using PHP and Javascript?

Hello everyone, I've created a three-level dynamic dropdown menu that includes categories, subcategories, and questions. Each category has a corresponding subcategory, and each subcategory has corresponding questions. Below is the code for this functi ...

Guide to invoking an API in Next.js 13 by utilizing specific variables within a client component

I currently have a collection of products that are accessible on my website through a straightforward function within a server component. async function getData() { const res = await fetch(`${apiPath}`); const data = (await res.json()) as PackProps ...

Issue encountered when attempting to load web view using an http URL

I am currently working on a webview app using React. During development, both http and https URLs were functioning perfectly. However, after generating the APK, only the https links are working. How can I fix this issue? import React, { Component } from ...

Don't run a specific test in a Jest test file

Currently working with the Jest framework and managing a test suite. I'm in need of guidance on how to disable or skip a particular test. Despite searching through documentation online, I haven't been able to find a solution. If you have any in ...

Exploring the ReactJS functionality for managing the position of ReactNodes

const backgroundSvgs: ReactNode[] = returnArrayHtmlElements(svgs, 50); return (<div> {backgroundSvgs.map((e) => { e.style.x = '50px' <-- I'm trying to modify the style property here })} </div>); I have a ...

Managing Cross-site Request Forgery and Cross-origin Resource Sharing in Django (REST Framework)

We are currently in the process of transitioning our frontend to a separate project outside of Django. This project will be a JavaScript single page application. One of the main reasons for this move is to simplify the workflow for our frontend developers ...

Showing various JSON arrays using AJAX and JavaScript

I've encountered a challenge with showcasing multiple JSON arrays and would greatly appreciate any assistance on this matter. JSON { "houseOne": [ { "name": "John Clarke", "age": 22, "dob": "19-11-90" }, { ...

Experience the power of Vue Google Chart - Geochart where the chart refreshes seamlessly with data updates, although the legend seems to disappear

I have integrated vue google charts into my nuxt project. Whenever I select a different date, the data gets updated and the computed method in my geochart component correctly reads the new data. However, the legend or color bar at the bottom does not funct ...

Establishing a variable to serve as a function invocation

Is there a way I can assign a variable to either .prev() or .next()? Here is an example of what I am trying to do: if(x == y) var shift = '.prev()'; else var shift = '.next()'; $("li.active").removeClass('a ...