簡體   English   中英

{} .hasOwnProperty()如何工作?

[英]How {}.hasOwnProperty() works?

假設我有一個對象var a = {"1": 1, "2": 2}和一個數組var b = [1, 2]

以下兩者之間有什么區別?

a.hasOwnProperty('1'); // Returns true
b.indexOf(1); // Returns 0, which is the index

在調用這兩種方法時, for循環會起作用嗎? 兩者的復雜性是否明智?

謝謝你的解釋...

下面兩個有什么區別

第一個告訴您對象是否具有名稱為 "1"的屬性。 第二個告訴您數組是否具有值為 1的條目 ,如果是,則說明其在數組中的位置。 那是完全不同的事情。 請注意, hasOwnProperty根本不查看該屬性的 ,而只是查看它是否存在。 ({"1": "foo", "2": "bar"}).hasOwnProperty("1")獲得相同的結果( true ({"1": "foo", "2": "bar"}).hasOwnProperty("1")

我的問題是,在調用這兩種方法時, for循環會發揮作用嗎?

不在任何現代JavaScript引擎上的hasOwnProperty 是,在indexOf

和復雜度都相等?

一點都不。 indexOf將是線性的( O(n) )。 hasOwnProperty將小於該值,通常大大小於該值。 即使在最壞的情況下(未優化的對象),也將更多地遵循哈希字典查找。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM