javascript 中的范围表现得很奇怪

2023-12-22

对象通过 JavaScript 中的引用传递。意味着该对象从任何地方发生的变化都应该得到反映。 在本例中,console.log(a) 的预期输出为 {}

function change(a,b) {
    a.x = 'added';
    a = b;//assigning a as {} to b
}
a={}
b={}
change(a,b);
console.log(a); //expected {} but output {x:'added'}
console.log(b)

这里发生了什么?据我所知,这不应该是因为功能范围。 谢谢


如果您添加另一行,您可以更清楚地了解正在发生的情况:

function change(a,b) {
    a.x = 'added';
    a = b;
    a.x = 'added as well';
};
a={};
b={};
change(a,b);
console.log(a);  //{x:'added'}
console.log(b);  //{x:'added as well'}

当你在做的时候a = b您正在分配局部变量a到参考b持有。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript 中的范围表现得很奇怪 的相关文章

  • 使用 vscode 调试器调试 next.js

    我已经使用安装了一个项目创建下一个应用程序 https github com segmentio create next app 我需要使用我的编辑器 vscode 调试服务器端渲染 所以我访问过vscode recipes 如何调试 ne
  • R 中的字符串作为函数参数

    数据框chocolates列出了糖果的类型以及每种糖果的一组评级 ID sweetness filling crash snickers 0 67 0 55 0 40 milky way 0 81 0 53 0 56 我正在编写一个函数 它
  • 主干视图 DOM 元素已删除

    我一直在阅读有关 Backbone js 僵尸 或内存泄漏 问题的信息 基本上 当您不再需要该元素时 您必须从 DOM 中解除绑定并删除该元素 以确保所有事件也被删除 现在 我有一个包含几个容器的单页应用程序 div div div div
  • 如何测试 javascript 闭包内的函数

    这似乎是不可能的 也可能是 但我正在尝试更多的 TDD 但我总是在闭包方面碰壁 假设我有以下内容 function createSomething init function privateMethod param return init
  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • 每 3 秒重复一次动画

    我正在使用 WOW js 和 animate css 现在我正在将 CSS 运行到 Infinite 我想知道如何让我的课程运行 3 秒停止并再次开始到无限 My html img src images fork png class for
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • 如何防止 Iframe 在与浏览器交互后弄乱浏览器的历史记录?

    因此 就我而言 我使用 Iframe 将 Grafana 附加到我的页面 这为我提供了漂亮且易于使用的图表 可以注意到 每次在图表上进行放大或缩小 使用鼠标单击 交互后 Grafana 的 Iframe 都会在我的 Angular 页面上触
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • 如何在button.addTarget操作中发送多个按钮?斯威夫特3

    如何将button和button2发送到我的pressButton2函数中 当用户触摸按钮2时 我需要更改按钮和按钮2的颜色 当我的 button2 addTarget 看起来像这样时 我收到错误 表达式列表中存在预期表达式 import
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • Angular 2+ 安全性;保护服务器上的延迟加载模块

    我有一个 Angular 2 应用程序 用户可以在其中输入个人数据 该数据在应用程序的另一部分进行分析 该部分仅适用于具有特定权限的人员 问题是我们不想让未经授权的人知道how我们正在分析这些数据 因此 如果他们能够在应用程序中查看模板 那
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • Safari 支持 JavaScript window.onerror 吗?

    我有一个附加到 window onerror 的函数 window onerror function errorMsg url line window alert asdf 这在 firefox chrome 和 IE 中工作正常 但在 s
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成

随机推荐

  • 如何通过 Aurelia / Typescript 导入和使用 PhotoSwipe?

    我正在尝试使用照片滑动 http photoswipe com 在 Aurelia 项目中 但找不到使其工作的方法 在捆绑包下的 aurelio json 中 我有 name photoswipe path node modules pho
  • 在Java中发送TAB控制字符

    我正在使用 Ganymede ssh 库 http www ganymed ethz ch ssh2 http www ganymed ethz ch ssh2 连接到 ssh 服务器 显然 通常 在使用 bash 时 当用户按键盘上的 T
  • CentOS6 中运行 chromedriver 时出错:“/lib64/libc.so.6: version `GLIBC_2.14' not found”

    我正在尝试在 CentOS 6 上启动 chromedriver 有关操作系统的更多信息 code root localhost bin uname all Linux localhost localdomain 2 6 32 358 el
  • php字符串差异

    我想创建一个方法来比较两个句子并返回使它们不同的单词 e g 灰色瓷砖 100 X 200 厨房地板 灰色瓷砖 300 X 600 厨房地板 区别是 100 200 300 600 它将允许一个单词 不需要一个字符位于两个唯一的单词之间 但
  • 非交互式“git clean -fdx”

    我正在构建一个处理传入文件包的东西 但我有一个相当严重的问题 即我无法清理传入数据 直到它能够中断处理 并且它以简单地重新启动进程的方式中断它没有修复它 我目前最好的解决方案是git clean fdx and git checkout 该
  • 我应该使用哪个版本的 MSXML?

    似乎这是一个常见问题 尽管我在 SO 上找不到它 我应该在我的应用程序中使用哪个版本的 MSXML 更重要的是 我应该如何决定 有 MSXML3 4 5 和 6 我最近发布了一些代码通过 vb 脚本调用 wcf 服务 https stack
  • Spring Security 身份验证入口点

    我已通过设置在 Spring MVC 应用程序上启用了 Rest 支持AuthenticationEntryPoint在我的 security context xml 上
  • 在 Backbone.js 中处理视图和模型对象

    在不需要时处置模型 视图实例的最有效方法是什么 通常 我将所有逻辑放在控制器 路由器中 它决定应该创建什么视图以及应该向它们提供什么模型 通常 有一些处理程序函数 对应于不同的用户操作或路由 每次执行处理程序时我都会创建新的视图实例 当然
  • dplyr 中波浪号和点符号的含义

    Summary我正在读一本article https dplyr tidyverse org articles colwise html关于 dplyr 的跨函数的主题 看第一个使用示例 我看到了以前从未见过的运算符的使用 我不知道它们是否
  • VisNetwork 与 Shiny 的点击事件

    我已经使用 Shiny 中的 visNetwork 包构建了我的网络 我想单击一个节点 然后显示数据框中有关该节点的信息 我已经能够使用单击和近点函数对散点图执行此操作 例如此处显示的 Shiny 示例中的函数 http shiny rst
  • 我可以在 C 程序中使用 cstdio 吗?

    当我添加时 我在 cstdio 中收到大量错误 include
  • 订购 ObservableCollection 而不创建新的 [重复]

    这个问题在这里已经有答案了 我有以下代码来重新订购ObservableCollection
  • 如何合并嵌套字典?

    我有一个嵌套字典 python 3 9 列表 看起来像这样 records Total Owner Available 15 to 34 years 1242 Total Owner Available 35 to 64 years 569
  • Keras 中的指标是如何计算的?

    我想知道 Keras 如何计算一个指标 是否是自定义指标 例如 假设我有以下指标 它产生预测与真实情况之间的最大误差 def max error y true y pred import keras backend as K return
  • 多个 uniqid() 调用不唯一

    我有一个有趣的例子 其中多次重复调用uniqid 当本地托管在 XAMPP 上时 不会生成唯一的编号 这个唯一的 ID 会重复 5 到 20 次 然后就会神秘地发生变化 然而 作为一个有趣的转折 该代码可以工作完美在我们的生产服务器上 这就
  • Chrome 扩展如何基本上 cURL 其他页面? [复制]

    这个问题在这里已经有答案了 我正在考虑编写一个 Chrome 扩展程序 需要在某个网站的某个动态页面上抓取一些链接并分析链接页面的内容 实际上 我对编写浏览器扩展了解不多 所以在我致力于学习如何编写之前 我想看看它是否可行 我确实知道扩展通
  • Python 描述符中实例和所有者的用途是什么?

    我正在尝试理解 Python 中的描述符 我似乎无法理解描述符方法中的实例和所有者是什么 object get self instance owner 现在我已经阅读了文档 https docs python org 3 reference
  • 在 Ruby 中如何测试一个值是否为素数?有简单的方法和困难的方法吗?

    我正在尝试创建一个程序来测试某个值是否为素数 但我不知道如何进行 这是我的代码 class DetermineIfPrime def initialize nth value nth value nth value primetest en
  • 如何配置 Visual Studio 2013 以与 Git/SourceTree 一起使用

    我希望能够将 Git 与 Visual Studio 2013 一起使用 我也希望能够使用 SourceTree 但我不知道两者如何一起使用 我在 Visual Studio 中创建了一个项目 并将其配置为使用 Git 但我不知道存储库是在
  • javascript 中的范围表现得很奇怪

    对象通过 JavaScript 中的引用传递 意味着该对象从任何地方发生的变化都应该得到反映 在本例中 console log a 的预期输出为 function change a b a x added a b assigning a a