javascript - javascript中有指针吗?

标签 javascript pointers

我以前用过 C++,我意识到指针非常有用。 javascript 中有没有像指针一样的东西? javascript有指针吗?当我想使用类似的东西时,我喜欢使用指针:

var a = 1;
var b = "a";
document.getElementById(/* value pointed by b */).innerHTML="Pointers";

我知道这是一个非常简单的例子,我可以只使用 a,但是还有几个更复杂的例子,我会发现指针非常有用。有什么想法吗?

最佳答案

不,JS 没有指针。

对象通过传递一个引用的副本来传递。程序员无法访问任何表示对象地址的类似 C 语言的“值”。

在一个函数中,可以通过该引用更改传递对象的内容,但您不能修改调用者拥有的引用,因为您的引用只是一个副本:

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 - javascript中有指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17382427/

相关文章:

c++ - 为什么 C++ 中不存在对成员的引用?

javascript - Vue.js 中的 {{ name }} 和 {{{ name }}} 有什么区别

javascript - React-router:URL参数存在于this.props中的两个不同位置?

Javascript\\b字符串转义问题

linux - 如何使用静态数组的结束指针作为循环条件来比较 x86 中的地址?

c - 使用 strtok 转储的段错误核心

c - 访问其他大小的 32 位字数组

javascript - 从带有换行符的文本区域到数据库的数据

java - 在 javascript 库 (ExtJS) 中编写 Web 应用程序的完整 View 逻辑的优缺点?

c - 如何将变量设置为与另一个指针分配和指向的空间量相同?