Dlaczego nie mogę przekazać „window.location.reload” jako argumentu setTimeout?

Chciałbym uzyskać wgląd w błąd, który widzę w Safari i Chrome, korzystając z następującego wiersza kodu:

setTimeout(window.location.reload, 250);

Raporty Chrome:
Uncaught TypeError: Illegal invocation

I Safari:
TypeError: Type error

W FireFox kod działa dobrze. Ponadto ten kod działa poprawnie w każdej z trzech przeglądarek:

setTimeout((function() {
  window.location.reload();
}), 250);

Chrome i Safari nie mają problemów z tym kodem:

var say_hello = function () { alert("hello") };  
setTimeout(say_hello, 250);  

O czym jest wyjątkowywindow.location.reload który powoduje ten błąd?

(nie jestem pewien, czy jest to przydatne, czy nie, ale oto ajsfiddle ilustrując to)

questionAnswers(3)

yourAnswerToTheQuestion