Почему `typeof this` возвращает« объект »?

var f = function(o){ return this+":"+o+"::"+(typeof this)+":"+(typeof o) };
f.call( "2", "2" );
// "2:2::object:string"

var f = function(o){ return this+":"+(typeof this)+":"+(typeof o); };
var x = [1,/foo/,"bar",function(){},true,[],{}];
for (var i=0;i

Я вижу те же результаты в Chrome, Firefox и Safari, поэтому предполагаю, что это соответствует спецификации , но ... почему? А где в спецификации это определяется? А почему не для функций?

8
задан Phrogz 8 December 2010 в 21:35
поделиться