Понять (1) несложно, главное разложить его по косточкам.
var func = Function.prototype.call;
var thisObj = function(){ alert('how it works?') };
тогда получается
func.call(thisObj)
что эквивалентно thisObj.func(), где под "func" в нашем случае подразумевается call, который есть у каждой функции