1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var fantasticNS = {};
(function(namespace) {
namespace.render = function() { console.log("Hello from fantasticNS.render()!") };
})(fantasticNS);
var wonderfulNS = {};
(function() {
this.render = function() { console.log("Hello from wonderfulNS.render()!") };
}).apply(wonderfulNS);
var amazingNS = {};
(function() {
var privateRender = function() { console.log("Hello from amazingNS.render()!") };
this.render = function() { privateRender() };
}).call(amazingNS);
fantasticNS.render();
wonderfulNS.render();
amazingNS.privateRenderer;
amazingNS.render();