2014-03-07 42 views
-1

JavaScript,有elem ['textContent']和elem.textContent之间有区别吗?

elem['textContent'] = "Test";

elem.textContent = "Test";

elemHTMLElement之间的差?

+0

'ELEM [ '的textContent']'是无效的语法,我猜你的意思是'ELEM [ '的textContent']'(没有点)。如果是这种情况,那么两者在功能上是相同的。 –

+0

@CristiPufu我不确定在编辑问题时是否默默地移除语法错误是一件好事。它可能在那里,因为它确实在OPs代码中,因此应该进行讨论。 – Yoshi

+2

你应该阅读这个:http://stackoverflow.com/questions/4968406/javascript-property-access-dot-notation-vs-brackets –

回答

3

他们也这么做。他们在对象上设置属性(它可以是任何类型的对象,所以它不会影响它是否是HTMLElement,Function或任何其他对象)。

唯一的区别是您可以将expression传递给括号表示法,而另一个表单仅允许qualify as an identifier的名称。

例如:

elem['text' + 'Content'] = "Test"; //works 

var t = ['textContent']; 
elem[t[0]] = "Test"; //works 

elem[(function() { return 'textContent'; })()] = "Test"; //works 
相关问题