簡體   English   中英

JavaScript如何區分對象?

[英]How does JavaScript distinguish between objects?

我扭了

document.createElement("p");
document.createElement("p")

Javascript解釋器如何知道兩者之間的區別?

ID (Js 屬性是什么)? 也許還有別的嗎?

在這種情況下:

document.createElement("p");
document.createElement("p")

JavaScript的運行時不擔心在所有的元素,因為你沒有保存返回的值。 他們被扔掉了。

如果你寫過

var p1 = document.createElementById('p');
var p2 = document.createElementById('p');

那么,您就有了兩個單獨的變量,因此您要跟蹤差異。

重要的是要注意,JavaScript解釋器本身並不太在乎您的DOM節點。 那不是真的嗎? 如果調用方法並創建對象,則跟蹤它們是您的問題。

讓我們再舉一個現實的例子:一個人如何在籃子里區分一個橘子和另一個橘子? 我往籃子里看,發現里面有多個橙色的球形物品

JavaScript解釋器在內部跟蹤創建的對象。 當某個對象未被任何內容(變量)引用時,內置的垃圾收集器將銷毀該對象。

沒有。 createElement返回對象引用,但是如果您不將其分配給任何對象或直接使用它,則它將丟失。

var firstp = document.createElement("p");
var secondp = document.createElement("p");

然后,您可以分配一個ID或其他:

firstp.id = "first";

但是請記住,這還不是DOM中的。 您必須將其插入某個位置,然后用戶才能使用getElementById找到它。

為此,您可以執行以下操作:

document.body.appendChild(firstp);

沒有。 調用document.createElement() ,您將創建一個元素並將其插入DOM中。 然后,JavaScript可以按ID抓取某些p元素,或者使用getElementsByClassName()抓取其他p (和其他)元素。

如果將返回值分配給變量,則可以通過引用不同的變量來跟蹤哪個是哪個。 不過,這是區分它們,而不是JavaScript。

您可以通過它們在元素數組中的索引來引用它們:

document.getElementsByTagName('p')[0]

您可以為其分配ID

document.getElementsByTagName('div')[0].id = 'first'
document.getElementsByTagName('div')[1].id = 'second'

並通過id引用它們

document.getElementById('first')

具體取決於您的實際操作方式...

暫無
暫無

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

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