JSFiddle - React, Tailwind, and code Playground

JavaScript

// base `Person` prototype
var Person = {
   name : '',
   age  : 22,
   type : 'human',
   msg: function(message) {
   	alert(message);
   },
   greet: function() {
       //console.log('Hi, my name is ' + this.name + ' and I am a ' + this.type + '.' );
       this.msg('Hi, my name is ' + this.name + ' and I am a ' + this.type + '.');
   }
};

// create an instance of `Person`:
var skywalker = Object.create(Person);
skywalker.name = 'Anakin Skywalker';
//skywalker.greet(); // 'Hi, my name is Anakin Skywalker and I am a human.'

var callbackTest1 = function(callback) {
	callback.greet();
}

var callbackTest2 = function(callback) {
	callback();
}

callbackTest1(skywalker); // this works
callbackTest2(skywalker.greet); // this doesn't