javascript中有指针吗?

新手上路,请多包涵

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

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

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

原文由 Dylan Vander Berg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 955
2 个回答

不,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

原文由 Alnitak 发布,翻译遵循 CC BY-SA 4.0 许可协议

你打赌 JavaScript 中有指针;对象是指针。

 //this will make object1 point to the memory location that object2 is pointing at
object1 = object2;

//this will make object2 point to the memory location that object1 is pointing at
function myfunc(object2){}
myfunc(object1);

如果不再指向内存位置,则那里的数据将丢失。

不像在 C 中,你看不到指针的实际地址,也看不到指针的实际值,你只能解引用它(获取它指向的地址处的值。)

原文由 user3015682 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题