我有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