Adding a global variable / function in JavaScript (specifically NativeScript)
Asked 07 September, 2021
Viewed 3K times
  • 55
Votes

I'm learning how to write apps with NativeScript. I believe the best way to learn is by doing. For that reason, I'm building a basic app.

In this app, I'm trying to create a function and a variable that I can access across ALL of the view models and other code in the app. In an attempt to do this, I thought I would add a function and variable on the application object.

In NativeScript, the app is initialized using the following code:

app.js

var application = require("application");
application.mainModule = "main-page";
application.start();

I figured I could piggy back on this and add a globally visible function and variable like so:

application.prototype.myFunction = function() {
  console.log('I made it!');
};
application.myVariable = 'some value';

Then, in my view models, or other code, I could just do something like the following:

views/home.js

application.myFunction();
console.log(application.myVariable);

However, when I run this code, I get an error that says that application is undefined. I do not fully understand this. I thought that because application is defined/instantiated in app.js that it would be globally visible. However, it does not seem to be. At the same time, I'm not sure what to do.

1 Answer