js中tostring()问题

var obj =Object.create({ x:1}) ;
alert(typeof obj.toString);
返回的为什么是“function”?

 toString 方法是所有内建的 JScript 对象的成员。它的操作依赖于对象的类型: 

对象 操作  
Array 将 Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。  
Boolean 如果 Boolean 值是 true,则返回 “true”。否则,返回 “false”。  
Date 返回日期的文字表示法。  
Error 返回一个包含相关错误信息的字符串。  
Function 返回如下格式的字符串,其中 functionname 是被调用 toString 方法函数的名称:  
function functionname( ) { [native code] }  
Number 返回数字的文字表示。  
String 返回 String 对象的值。  
默认 返回 “[object objectname]”,其中 objectname 是对象类型的名称。  

你这里Object.create,返回是类对象,也就是function 方法

typeof 可以用来检测给定变量的数据类型,可能的返回值:1. 'undefined' --- 这个值未定义;
2. 'boolean'    --- 这个值是布尔值;
3. 'string'        --- 这个值是字符串;
4. 'number'     --- 这个值是数值;
5. 'object'       --- 这个值是对象或null;
6. 'function'    --- 这个值是函数。
再typeof function就是字符串function

alert(typeof obj.toString)
返回的是函数
alert(typeof obj.toString())
调用函数,返回的是返回值类型

{
toString:function{
}
}

顶二楼,楼主调的是obj.toString,而不是obj.toString();

toString是object的默认方法,typeof方法当然返回的是function,你要执行toString()后才会得到的是toString的返回值