The Namespace library demo

Demo of the namespace library. author(s): Irakli Gozalishvili

HTML

<script src="http://jeditoolkit.com/teleport/support/teleport/teleport.js"></script>

JavaScript

define('demo', function(require, exports, module, undefined) {

'use strict'

// importing library.
var Namespace = require('http://jeditoolkit.com/namespace/lib/namespace.js').Namespace
// Creating namespace for private properties.
var _ = new Namespace

function Base(options) {
  _(this).secret = options.secret
}
Base.prototype.hello = function hello() {
  return 'Hello ' + _(this).secret
}

function Decedent(options) {
  Base.call(this, options)
}
Decedent.prototype = Object.create(Base.prototype)
Decedent.prototype.bye = function bye() {
  return 'Bye ' + _(this).secret
}
Decedent.prototype.boom = function boom() {
  _(this).secret = 'boom !'
}

var base = new Base({ secret: 'Father' })

alert(base.secret)      // -> undefined
alert(base.hello())     // -> 'Hello Father'

var decedent = new Decedent({ secret: 'Yoda' })

alert(decedent.hello())   // -> 'Hello Yoda'
alert(decedent.bye())     // -> 'Bye Yoda'
decedent.boom();

alert(decedent.hello())   // -> 'Hello boom !'
alert(decedent.bye())     // -> 'Bye boom !'

})

// Loading module "demo"
require.main("demo")