js self executing object literal methods

by Matt Rummler

HTML

<section id="updateme">
  Replace or modify this text:
  
</section>

JavaScript

/**
* After trying a large number of things it turns out here is what is required:
1. An anonymous function assigned to a variable. NOTE: There is another way to do this without assigning it to a variable, see the second pattern here: http://www.andismith.com/blog/2011/10/self-executing-anonymous-revealing-module-pattern/
2. Inside the anonymous function another named function must be created
3. The named function must be called after it's defined and still inside the anonymous function assigned to a variable
4. after the anonymous function the following must appear "()"

There is often a set of perenthesis surrounding the anonymous function... There may be some sort of bug that can occasionally appear without them... I would think they are being used as 

UPDATE: The parenthesis are valuable if you want to do an arrow function instead of a standard function call
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
*/

var testObj =
{
	testObjProperty1: 'value of testObjProperty1',
	showStuff: (() =>
  {
    var showMessage = function(){window.alert('This is the message from showMessage');};
    showMessage();
  })(),
  showMoreStuff: (function()
  {
    alert('testObj.testObjProperty1: '+this.testObjProperty1, )
    localContext = this;
  	var showMoreStuff = function(lc)
    {
    	let amessage = 'This is the message from showMoreStuff in testObj. The following is the message from testObjProperty1: '+this.testObjProperty1; 
      window.alert(amessage);
    };
    showMoreStuff(localContext);
  })(),
  init: function()
  {
  	this.testObjProperty2 = this.testObjProperty1+' plus value of testObjProperty2';
    alert(this.testObjProperty2);
    return this;
  }
}.init();
/**/
var showStuffAgain = function()
  {
    var showMessage2 = function(){window.alert('This is the message from showMessage2');};
    showMessage2();
  }();
 //*/
 var showStuffThree = function()
 {
 	 var showMessage3 =...