.parentNode到底是什么
what exactly the .parentNode is?
本文关键字:是什么 parentNode 更新时间:2023-09-26
>我写一个简单的html:
<!DOCTYPE html>
<html>
<body>
<div>Hi</div>
</body>
</html>
谷歌浏览器上的这个简单脚本:
var div = document.querySelector('div');
console.log(div.parentNode.innerHTML);
console.log("%O",div);
然后控制台打印出内部 HTML 和对象。
展开对象,然后找出 parentNode 的值为空。
我知道 parentNode 是节点对象的属性之一,但是这个变量里面有什么?
这是一个指针?子对象?函数?
如果它是一个子对象,将一个对象作为成员变量存储在另一个对象中会浪费内存吗?
JavaScript没有
"指针"或"子对象"。 每个"对象"变量(或属性)都无形地被视为对对象的引用。
var a = 1; // a contains the value "1"
var b = {}; // b contains a reference to the newly created empty object {}
在这种情况下,.parentNode
属性只是对包含<div>
的HTMLBodyElement
对象的引用。
更多信息:
这些引用有点像 C 的指针,但它们是完全不透明的 - 您无法获得引用的任何有意义的值。 但是,您可以使用 ===
运算符比较引用,以查看两个引用是否实际引用同一对象。
每个对象都被引用计数 - 如果没有更多的引用(即没有指向它的范围内变量或属性),则该对象可能会被垃圾回收。
当你把一个对象传递给一个函数时,你实际上是在传递一个引用的副本。 这意味着在函数中,您可以访问该对象的属性并修改该对象,但不能修改调用方对该对象的引用。
JavaScript没有
"指针"或"子对象"的概念。
parentNode
的值是表示 DOM 节点的对象,该节点是设置属性的对象的父节点(如果有,如果没有,则变为null
)。
像 JS 中作为对象的所有值一样,这是作为引用处理的。
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- 在ng重复循环中显示条件内容的最佳方式是什么
- 我的客户端选项是什么
- 这是什么“;要求“;事情
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- @@(“at at”)在ES6 JavaScript中是什么意思
- 这条线是什么意思"this.parentNode.firstChild.nodeName”;在jQuery H
- .parentNode到底是什么
- 什么's是“”的parentNode<tr>"