JavaScript如何区分对象?

时间:2011-09-27 21:23:15

标签: javascript

我已经知道了

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

Javascript intepreter如何知道这两者之间的区别?

ID ? (什么是Js 属性)?也许其他

5 个答案:

答案 0 :(得分:7)

在这种特殊情况下:

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

JavaScript运行时不会担心所有元素,因为您没有保存返回的值。他们被扔掉了。

如果你写过,

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

那么你有两个独立的变量,所以跟踪差异。

重要的是要注意JavaScript解释器本身并不太关心你的DOM节点。这不是真正的业务。如果你调用方法并创建对象,那么跟踪它们是个问题。

答案 1 :(得分:4)

让我们选择另一个现实生活中的例子:一个人如何将一个橙色与另一个橙色区分开来? 我看着篮子里面,注意到有多个橙色的球形物品

JavaScript解释器内部跟踪创建的对象。当一个对象没有被任何东西(变量)引用时,内置的垃圾收集器会破坏该对象。

答案 2 :(得分:3)

没有。 createElement返回对象引用,但是如果你没有将它分配给任何东西或直接使用它,它就会丢失。

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

然后你可以指定一个id或诸如此类的东西:

firstp.id = "first";

请记住,这还不在DOM中。你必须先将它插入某个地方才能被用户看到/找到getElementById。

为此您可以这样做:

document.body.appendChild(firstp);

答案 3 :(得分:1)

没有。当您调用document.createElement()时,您创建了一个元素并将其插入到DOM中。然后,JavaScript可以按ID抓取某些p元素,或者使用p抓取其他getElementsByClassName()(和其他)元素。

如果您已将返回的值分配给变量,则可以通过引用不同的变量来跟踪哪个是哪个。这是区分它们,而不是JavaScript。

答案 4 :(得分:0)

您可以通过elemnts数组中的索引来引用它们:

document.getElementsByTagName('p')[0]

您可以为他们分配ID

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

通过id

引用它们
document.getElementById('first')

这取决于你如何真正做到这一点......