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<x.length;++i) console.log(f.call(x[i],x[i]));
// "1:object:number"
// "/foo/:object:object"
// "bar:object:string"
// "function() {\n}:function:function"
// "true:object:boolean"
// ":object:object"
// "[object Object]:object:object"
मुझे क्रोम, फ़ायरफ़ॉक्स और सफारी में एक ही परिणाम दिखाई देता है, इसलिए मुझे लगता है कि यह the spec प्रति है, लेकिन ... क्यों? और जहां spec में यह परिभाषित किया गया है? और क्यों नहीं कार्यों के लिए?'इस' वापसी 'ऑब्जेक्ट' टाइप क्यों करें?
वाह, कभी नहीं पता था। अब मुझे आश्चर्य है कि यह भी क्यों है! – Matt