Question:
I am trying to understand the following code, but cannot get what exactly the lineconst ej2_popups_1 = require("@syncfusion/ej2-popups");
is doing? I searched online and found that the require statement is loading a module, but then the question comes up what exactly is the use of const ej2_popups_1
and which object i.e. full name like aaa.bbb.ccd.Dialog it represents.The reason I need the fully qualified name is because I want to override a method called
someMethod
in ej2_popups_1.Dialog.prototype.someMethod.Answer:
In the RequireJS pattern, you don’t have to define things as globals, but rather you have two globals: require and define, which let you create and use modules.from RequireJS docs: https://requirejs.org/docs/api.html#define
A module is different from a traditional script file in that it defines a well-scoped object that avoids polluting the global namespace. It can explicitly list its dependencies and get a handle on those dependencies without needing to refer to global objects, but instead receive the dependencies as arguments to the function that defines the module.
so, this require function does the work of “window” – in that it knows about your other dependencies. and its not as tightly coupled – a variable vs something configurable like a lookup based on a string name of a package/module. the mechanics of how it works are described here as well
If you have better answer, please add a comment about this, thank you!