JS里有指针么?

提到 js 指针,其实我是懵圈儿的,准确来说,应该是没有的,引用倒是满天飞。不过下面的这个例子值得看看。

Are there pointers in javascript?

No, JS doesn’t have pointers.

Objects are passed around by passing a copy of a reference. The programmer cannot access any C-like “value” representing the address of the object.
Within a function one may change the contents of an passed object via that reference, but you cannot modify the reference that the caller had, because your reference is only a copy:

var foo = {'bar': 1};

function tryToMungeReference(obj) {
  obj = {'bar': 2};  // won't change caller's object
}

function mungeContents(obj) {
  obj.bar = 2;       // changes _contents_ of caller's object
}

tryToMungeReference(foo);
foo.bar === 1;   // true - foo still references original object

mungeContents(foo);
foo.bar === 2;  // true - object referenced by foo has been modified

其他参考

JavaScript 的指针是什么?
备注:我还是觉得js里面是没有指针的,除了this指针,更何况,ES6都没有this了。不过js里面绝对有比C里面的指针更刺激的东西,见如下系列。

汤姆大叔的博客-深入理解JavaScript系列

未完待续

时间: 2024-07-30 19:22:37

JS里有指针么?的相关文章

关于js里的this关键字的理解_javascript技巧

this关键字在c++,java中都提供了这个关键字,在刚开始学习时觉得有难度,但是只要理解了,用起来就方便多了,下面通过本篇文章给大家详解js里this关键字的理解. 关于this,是很多前端面试必考的题目,有时候在网上看到这些题目,自己试了一下,额,还真的错了!在实际开发中,也会遇到 this 的问题(虽然一些类库会帮我们处理),例如在使用一些框架的时候,例如:knockout,有时候不明白为什么不直接使用this,而要把 this 作为参数传入.    接下来你谈谈我对它的理解,也作为一个

jquery aja...-$getJSON 在一个js里 这两个请求第二个内容无法运行

问题描述 $getJSON 在一个js里 这两个请求第二个内容无法运行 做一个项目 需要多次请求后台验证 返回json显示结果请求的内容不同 我写第二个$.getJSON的时候 确实访问了后面的url 但是为什么里面的内容无法执行,随便alert(123)都不行 但是第一个$.getJSON里面的内容可以执行 可以对接收的json数据进行判断什么的 有大神知道怎么解决吗

JQuery与JS里submit()的区别示例介绍

 这篇文章主要介绍了JQuery与JS里submit()的区别,需要的朋友可以参考下 ASP.NET 的服务器控件回发是使用这一段JS代码:   代码如下: var theForm = document.forms['form1'];  if (!theForm) {  theForm = document.form1;  }  function __doPostBack(eventTarget, eventArgument) {  if (!theForm.onsubmit || (theFo

jsp-我不懂这个js里的eval函数到底在哪里用到了

问题描述 我不懂这个js里的eval函数到底在哪里用到了 详细的代码如下var navigator_appName = ""chrome"";var window;var dbits;var canary=0xdeadbeefcafe;var j_lm=((canary&0xffffff)==0xefcafe);function BigInteger(abc){if(a!=null)if(""number""==typ

前端要革命?看我在 JS 里写 SQL

在日新月异的前端领域中,前端工程师能做的事情越来越多,自从nodejs出现后,前端越来越有革了传统后端命的趋势,本文就再补一刀,详细解读如何在js代码中执行标准的SQL语句 为什么要在JS里写SQL? 随着业务复杂度的增长,前端页面可能出现一些数据逻辑复杂的页面,传统的js逻辑处理起来比较复杂,我们先看两个例子: 比如多规格多库存商品界面,难点在于颜色分类.尺码.价格.库存.限购数量以及对应的图片展示之间有复杂的逻辑关系,用户进行不同的选择时,js要经过多次复杂的查询才能算出结果 比如地区联动查

jsp中调用上一个网页中调用的js里面的input text的值

问题描述 jsp中调用上一个网页中调用的js里面的input text的值 套了一个时间选择的模板,想要获取开始时间和结束时间,但是这两个出现在调用的js里面,怎么获取 解决方案 将控件绑定id,js中有通过id设置控件内容的方法 解决方案二: 当前网页和上一个网页是什么关系?iframe还是window.open? iframe可以用parent或者document.getElementById('ifrID').contentWindow得到相互引用, window.open用opener或

javascript-如何在js里为activex控件里的方法传入byte的数组

问题描述 如何在js里为activex控件里的方法传入byte的数组 我现在有一个activex的控件,它里面有个方法需要传入byte数组,控件里面的方法是usb_write(byte[] Q_index, byte[] Q_type, byte[] pQ_data),这个在js中如何为它里面传byte[]类型的参数啊 解决方案 try xxx.usb_write([1,2,3,5],[1,2,3,5],[1,2,3,5])

js里各浏览器解析XML,支持IE、火狐、Chrome等

js在chrome中加载XML,js加载XML支持ff,IE6+,Opera等浏览器   见代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js里各浏览器解析XML,支持IE.火狐.Chrome等</title> </head> <body> <script>

js里写一个当前页面弹出登陆框,用来输入用户名和密码并传到另一个页面的方法,求相助!

问题描述 js里写一个当前页面弹出登陆框,用来输入用户名和密码并传到另一个页面的方法,求相助! 解决方案 纯js拼页面--那就在table外面拼个form,加上action等属性 form里再加submit的input点击input,form直接提交到后台,自己后台处理跳转:想直接跳,那就js拿到用户名和密码,直接url带参数传过去window.location.href=""跳转页面?用户名=值&密码=值""