javascript中对未定义的对象引用[关闭]

2023-11-30

如果您在 javascript 中有一个对象,并且它引用了另一个对象,然后第二个对象发生了更改,您可以期望看到引用对象中的更改。但是,如果第二个对象最初未定义,则第一个对象将永远不会反映新的更改。任何人都可以解释这段代码的幕后发生了什么吗?

//Here we see the reference updated
var myobj = {};
var pointer = myobj;
myobj.value = 1;
console.log(pointer.value);

//Here if we start as undefined, create a reference and then allocate a new object - not so much    
var myobj = undefined;
var pointer = myobj;
myobj = {}
myobj.value = 1;
console.log(pointer.value);

这是在下观察到的

$ node --version 
v0.8.22

答案很简单。您需要了解值类型变量和引用类型变量之间的区别。

在第一个示例中有一个引用类型变量,即myObj它指向内存中的一个区域。然后你再定义一个变量,即pointer指向同一区域。这就是为什么对一个对象的任何更改都会立即反映在另一个对象上。

在第二个示例中,情况略有不同。您定义myObj这是未定义类型。这意味着没有为此变量指定值。如果您有值类型变量,例如,您可以这样做您无法为其分配值的数字、字符串等;这也意味着myObj不指向内存堆部分中的任何内容。 然后当你执行此操作时 var point = myobj;您只需将一个变量的值复制到另一个变量;与这样做类似,例如:varpointer = 5;这称为“按值复制”,因此这就是不反映更改的原因。

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

javascript中对未定义的对象引用[关闭] 的相关文章

  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 在 NodeJS 中将子进程的输出保存在父进程的变量中

    我想在 NodeJS 中启动一个子进程并将其输出保存到一个变量中 以下代码将其提供给标准输出 require child process execSync echo Hello World stdio inherit 我的想法与此代码类似
  • 如何防止 Iframe 在与浏览器交互后弄乱浏览器的历史记录?

    因此 就我而言 我使用 Iframe 将 Grafana 附加到我的页面 这为我提供了漂亮且易于使用的图表 可以注意到 每次在图表上进行放大或缩小 使用鼠标单击 交互后 Grafana 的 Iframe 都会在我的 Angular 页面上触
  • Meteor:应用程序无法在 0.9.1.1 版本上运行

    出现类似错误 Error TypeError undefined is not a function evaluating Template create anonymous function iron dynamic template j
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • 使用node.js安装xml2json时出错

    我尝试为 node js 安装 xml2json 包 但它给了我错误 Error are as below 我的系统配置如下 Node js 版本 v5 4 1 npm 版本 3 3 12 操作系统 Windows 10 64 位 pyth
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • Meteor - 从客户端取消服务器方法

    我正在通过服务器方法执行数据库计数 用户可以选择他们希望如何执行计数 然后调用该方法 我的问题是 计数可能需要一些时间 并且用户可能会在方法运行时改变主意并请求不同的计数 有什么方法可以取消调用的方法并运行新的计数吗 我认为 this un
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 在javascript中解析json - 长数字被四舍五入

    我需要解析一个包含长数字的 json 在 java servlet 中生成 问题是长数字被四舍五入 当执行这段代码时 var s x 6855337641038665531 var obj JSON parse s alert obj x
  • 通过 CDN 使用 Dojo 时如何加载自定义 AMD 模块?

    我正在使用 google 的 CDN 并尝试使用他们的加载程序加载我自己的 AMD 模块 我知道我做错了什么 但我被困住了 有任何想法吗
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • 提交表单并重定向页面

    我在 SO 上看到了很多与此相关的其他问题 但没有一个对我有用 我正在尝试提交POST表单 然后将用户重定向到另一个页面 但我无法同时实现这两种情况 我可以获取重定向或帖子 但不能同时获取两者 这是我现在所拥有的
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win

随机推荐

  • 为什么 {key:value}["key"] 不起作用?

    1 key value key 2 key value key 我想知道 JS 解释器如何处理上面的代码 以及为什么1不起作用 为什么2 works 我假设您问这个问题是因为您在 JavaScript REPL shell 中看到了这种效果
  • 使用 Eloquent ORM / laravel 准备好的语句

    我是 Laravel 新手 并使用它作为输入查询 DB table user input gt insert array array fname gt Input get Name lname gt no email gt Input ge
  • Blackberry HttpConnection 超时

    在我的 Blackberry 4 5 项目中 我通过 Connector open 创建 HttpConnection 如果我通过 MDS 连接 我可以在 URL 的附加参数中指定 ConnectionTimeout 如果使用直接 TCP
  • .htaccess 重定向锚页面/page#anchor 到 url

    我如何重定向page page anchor to http www example com page page 我尝试了以下代码 但它不起作用 RewriteRule page page anchor http www example c
  • 在python中将多个png合并到一个pdf中

    我想知道是否有一种简单的方法可以在 python 中将多个 png 图像合并到一个 pdf 中 我希望每个图像都是 pdf 中的一页 pypdf 是为此使用的最佳库吗 任何帮助将不胜感激 Thanks from PIL import Ima
  • 将军事时间转换为标准时间(R 中的小时和分钟)

    我有以下一组时间数据 必须将其转换为 12 小时格式 814 830 1835 1730 1442 820 1430 930 1550 1725 1615 1010 1319 1755 820 1955 1850 710 例如 1300 下
  • 禁用Android图像自动旋转

    当我从图库中选择图像并在 ImageView 中显示图像时 某些图像会自动旋转 90 度 我如何禁用此功能 Code Override protected void onCreate Bundle savedInstanceState su
  • 如何在 C# 中将 XML 动态绑定到 WPF DataGrid

    我四处寻找这一点 但我能找到的所有示例都使用了 XAML 这使得解决方案过于静态 这是我想做的 我想从运行时指定的 XML 文件填充 DataGrid 的列 行和属性 DataGrid 的属性没有任何内容是可以修复的 XML 将其驱动到最后
  • 从长字符串中过滤数据(vcard)

    我正在扫描 vcard 二维码中的数据 我收到的字符串总是看起来像这样 BEGIN VCARD VERSION 2 1 N Lastname Firstname FN Firstname Lastname ORG Lol Group TIT
  • Selenium-TestNG-Maven - 获取“java.lang.NoClassDefFoundError:org/openqa/selenium/firefox/FirefoxDriver”

    这是我的第一个使用 TestNG 和 Maven 的 selenium 脚本 创建了一个简单的 Hello World 代码和一个仅检查谷歌页面标题的硒测试代码 下面是带有 TestNG 的 Selenium 代码 import org o
  • 路由错误 - 将 button_to 与自定义操作一起使用时没有路由匹配

    我有以下按钮来下载文件 button to download action download method get 我有一个downloadMoviesController 下的方法如下 movies controller rb def d
  • 使用正则表达式匹配 IRC 频道

    如何使用正则表达式来匹配 IRC 频道名称 这些名称将具有前面的哈希符号 包括 x07 x2C s 200 Should do it according to RFC1459 s specification
  • Hibernate DB 连接池 c3p0 出现问题

    自上一篇文章以来 我做了所有建议的更改 但这个问题仍然困扰着我 这是我得到的错误 Caused by com mysql jdbc exceptions jdbc4 CommunicationsException The last pack
  • Node Sass 找不到适合您当前环境的绑定

    我在构建应用程序时遇到问题 因为 node sass 不断因错误而失败 缺少绑定错误 Users warren Sites random docs my cms node modules node sass vendor darwin x6
  • 针对海量数据优化MySQL全外连接

    我们有以下 mysql 表 为了直奔主题而简化 CREATE TABLE MONTH RAW EVENTS idEvent int 11 unsigned NOT NULL city varchar 45 NOT NULL country
  • 使用shell脚本进行日志监控并发送邮件

    帮助写一个脚本 以下是日志格式 我想编写一个在实时日志中搜索关键字的脚本 假设有些服务器已停止 它将显示 shutdown 或force shutdown 并且它还在日志中显示 服务器关闭已由 user启动
  • Cassandra 将数据存储在哪个节点上?

    是否有命令或任何方式可以知道哪些数据存储在 Cassandra 的哪些节点上 我对 Cassandra 还很陌生 在谷歌上搜索这个问题的运气不佳 Thanks 您可以让 Cassandra 告诉您特定键所在的节点节点工具获取端点 nodet
  • Java:获取最大公约数,哪种方法更好?

    从这个问题Java 获取最大公约数 在获取任意数据类型的gcd时是否int long Integer Long 哪个答案在精度 速度 CPU 使用率等方面更好 A private static int gcdThing int a int
  • C 宏有什么用?

    我写了一点C语言 我可以很好地阅读它 大致了解它在做什么 但每次我遇到宏时 它都会让我彻底崩溃 我最终不得不记住宏是什么 并在阅读时将其替换在我的脑海中 我遇到的那些直观且易于理解的总是像小迷你函数 所以我总是想知道为什么它们不仅仅是函数
  • javascript中对未定义的对象引用[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 如果您在 javascript 中有一个对象 并且它引用了另一个对象 然后第二个对象发生了更改 您可以期望看到引用对象中的更改 但是 如果第二个对象最初未定义 则第一个对象将