JSFiddle - React, Tailwind, and code Playground

HTML

<!-- The JavaScript “this” Keyword Deep Dive: Nested Methods -->

<!-- http://blog.kevinchisholm.com/ -->

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
var log = function(msg){jQuery('body').append('<div>' + msg + '</div>')};
</script>

JavaScript

window.music = 'classical';
window.getMusic = function(){
	return this.music;
};

var foo = {
	music : 'jazz',
	getMusic : function(){
		return rockObject.getMusic();
	}	
},
rockObject = {
	music : 'rock',
	getMusic : function(){
		return metalObject.getMusic();
	}		
},
metalObject = {
	music : 'metal',
	getMusic : function(){
		return this.music;
	}		
};

log(this.getMusic()); //'classical' (global)
log(foo.getMusic()); //'metal'  (property of metalObject)