當前位置:編程學習大全網 - 源碼下載 - Object.prototype.toString.call()、Array.prototype.toString.call()、toString()

Object.prototype.toString.call()、Array.prototype.toString.call()、toString()

1、toString()方法和Object.prototype.toString.call()方法對比

Object.prototype.toString()本身是允許被修改的,數組的toString()方法實際上是Object.prototype.toString()重寫後的方法,並不是Object.prototype中的toString(),Object.prototype.toString()方法使用來判斷數據類型的,如:

而重寫後的toString()方法可以把數組轉換為字符串,如:

2、事實上只有Object.prototype上的toString才能用來進行復雜數據類型的判斷,而數組的toString()方法是重寫了Object.prototype的toString()方法,所以當使用arr.toString()時,不能進行復雜數據類型的判斷,因為它調用的是Array.prototype.toString,雖然Array也繼承自Object,但此時數組的toString()方法是js在Array.prototype上重寫了toString(也就是為我們提供的現成的將數組轉換為字符串的方法),而我們通過toString.call(arr)實際上是通過原型鏈調用了Object.prototype.toString,當然也可以直接使用 arr.toString()直接調用。如:

3、原型鏈——js中的對象都繼承自Object,所以當在某個對象上調用壹個方法時,會先在該對象上進行查找,如果沒找到則會進入對象的原型(也就是.prototype)進行查找,如果沒找到,同樣的也會進入對象的原型的原型進行查找,直到找到或者進入原型鏈的頂端Object.prototype才會停止。

  • 上一篇:談談MediaStream
  • 下一篇:Linux嵌入式交叉編譯工具鏈問題 淺談
  • copyright 2024編程學習大全網