You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中使用DOM方法获取元素是否属于assign-by-reference?

DOM元素变量赋值的本质
  • 你的理解完全正确:变量mySearchIcon并没有持有HTML元素本身,而是持有该DOM元素对象的引用。
  • 这属于你所说的assign-by-reference(按引用赋值)范畴,原因是:DOM元素在JavaScript中属于对象类型(复合值),和数组、自定义对象遵循相同的赋值规则:
    • 当你通过document.querySelector获取DOM元素时,该方法返回的是内存中对应DOM对象的引用;
    • 赋值操作只是把这个引用复制给变量mySearchIcon,变量本身并不存储整个DOM元素的内容;
    • 如果将这个变量赋值给另一个变量(比如let iconCopy = mySearchIcon),两个变量会指向同一个DOM元素对象,修改其中一个变量对元素的属性(如iconCopy.style.display = 'none'),会直接影响原始变量对应的元素,因为操作的是同一个共享对象。

额外补充:JavaScript里严格来说是按共享赋值(call-by-sharing),但日常开发中常简化为“按引用赋值”,两者的核心逻辑和你理解的复合值赋值行为一致——变量存储的是指向对象的引用,而非对象副本。

内容的提问来源于stack exchange,提问作者Lotus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 04:00:01