3
我知道通話和應用是用於在JavaScript中明確地設置這個。 使用以下代碼是檢查它是否爲數組對象。它將控制檯[object Array]。什麼toString.call(數組)實際上做?
var arr = [];
console.log(toString.call(arr));
誰能讓我明白toString.call(arr)
是做什麼的代碼?
我知道通話和應用是用於在JavaScript中明確地設置這個。 使用以下代碼是檢查它是否爲數組對象。它將控制檯[object Array]。什麼toString.call(數組)實際上做?
var arr = [];
console.log(toString.call(arr));
誰能讓我明白toString.call(arr)
是做什麼的代碼?
toString.call(arr)
調用toString
(無論如何)與this
設置爲數組。它的作用完全取決於toString
是什麼。
例如,如果它是Object.prototype.toString
,它可靠地生成此字符串:[object Array]
。這是非常方便的ES2015前環境來確定陣列是一個數組或別的東西:
if (Object.prototype.toString.call(arr) === "[object Array]") {
// Yes, it's a true array
} else {
// No, it isn't
}
(在ES2015,Array.isArray
加入:if (Array.isArray(arr))
)
你會做到這一點,而不是原因只是arr.toString()
是數組覆蓋toString
,而不是使用它們從Object
(Array.prototype.toString
調用Array.prototype.join
,繼承產生一個字符串,其中包含強制爲字符串的數組中的聯合在一起的條目)繼承一個。