问题描述
- 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的返回值
时间: 2025-01-28 10:33:04