function fnMethod(){};
var str = fnMethod.toString();
/**
结果是 "function fnMethod(){}"字符串
/
var str1 = Object.prototype.toString.call(fnMethod);
/*
结果是检测出了类型 [object Function]
*/
为什么一个是字符串 一个是 类型
想问下 这到底是怎么执行的 这个call 起到了什么作用
对于Object.prototype.toString.call(fnMethod); 简单的来说 call 的作用是 用Object.prototype.toString 来替换 fnMethod 方法
例子
function add(a,b)
{
alert(a+b);
}
function sub(a,b)
{
alert(a-b);
}
add.call(sub,3,1);
call和apply是为了改变函数体内的this指向用的
function abc(){alert(this)}
abc()//window
abc.call({a:1});//{a:1}这个对象
var str1 = Object.prototype.toString.call(fnMethod);是得到Object对象的toString()返回值,你不传参就是[object Undefined],后面那个应该是参数类型,等价于typeof返回值,并不是调用fnMethod.toString