我有3个问题。谢谢!关于JavaScript的TypeError异常的问题
第一个问题:
的JavaScript代码的时候会引起 “类型错误” 异常?
其他问题:下面
我有代码:
<!DOCTYPE html>
<meta charset="utf-8">
<title>An HTML5 document</title>
<script>
var str = 'abc'; // str's type is string, not object
// Syntax: Object.getPrototypeOf(object)
alert(Object.getPrototypeOf(str)); // Uncaught TypeError: Object.getPrototypeOf called on non-object
// Syntax: prototype.isPrototypeOf(object)
if (Object.prototype.isPrototypeOf(str)) { // false
alert('true');
} else {
alert('false');
}
</script>
方法getPrototypeOf()
和isPrototypeOf()
都需要哪种类型应该是对象的参数。而str
的类型是字符串。
为什么getPrototypeOf
方法抛出一个TypeError异常,并且isPrototypeOf
方法不抛出任何错误?
如果str
的类型是对象(var str = new String('abc')
),Object.prototype.isPrototypeOf(str)
的结果是true
。但上面的代码的结果是false
。为什么当str
被用作isPrototypeOf
方法的参数时,会自动从字符串转换为对象?
谢谢!
你应该通过String构造函数构造你的“str”字符串(str = new String('abc')),这样你就不会得到TypeError.I同意了..这有点奇怪 – 2011-02-01 19:28:23