Почему вызовы определенных функций в JavaScript называются «незаконными вызовами»?

Например, если я сделаю следующее:

var q = document.querySelectorAll;

q('body');

Я получу ошибку "Незаконный вызов" в Chrome. Я не могу придумать ни одной причины, почему это необходимо. Во-первых, это не относится ко всем функциям нативного кода. На самом деле я могу сделать так:

var o = Object; // which is a native code function

var x = new o();

И все отлично работает. В частности, я обнаружил эту проблему при работе с документом и консолью. Есть мысли?

79
задан Robert Harvey 20 February 2013 в 20:11
поделиться