首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript中的指针?

JavaScript中的指针?
EN

Stack Overflow用户
提问于 2012-04-19 23:49:16
回答 12查看 125.1K关注 0票数 83

我们可以在函数中传递一个不可变变量的引用作为参数吗?

示例:

代码语言:javascript
复制
var x = 0;
function a(x)
{
    x++;
}
a(x);
alert(x); //Here I want to have 1 instead of 0
EN

回答 12

Stack Overflow用户

发布于 2012-04-19 23:52:57

这个问题可能会有帮助:How to pass variable by reference in javascript? Read data from ActiveX function which returns more than one value

总而言之,Javascript原语类型总是通过值传递,而对象内部的值是通过引用传递的(感谢评论者指出我的疏忽)。所以要解决这个问题,你必须把你的整数放在一个对象中:

代码语言:javascript
复制
var myobj = {x:0};

function a(obj)
{
    obj.x++;
}

a(myobj);
alert(myobj.x); // returns 1

票数 18
EN

Stack Overflow用户

发布于 2014-01-20 05:21:55

我发现了一种稍微不同的实现指针的方式,从C的角度来看,它可能更通用,更容易理解(因此更适合用户示例的格式)。

在JavaScript中,就像在C中一样,数组变量实际上只是指向数组的指针,所以您可以使用与声明指针完全相同的数组。这样,无论您在原始对象中如何命名变量,代码中的所有指针都可以以相同的方式使用。

它还允许使用两种不同的符号来表示指针的地址和指针地址处的内容。

下面是一个例子(我用下划线表示一个指针):

代码语言:javascript
复制
var _x = [ 10 ];

function foo(_a){
    _a[0] += 10;
}

foo(_x);

console.log(_x[0]);

收益率

代码语言:javascript
复制
output: 20
票数 13
EN

Stack Overflow用户

发布于 2014-12-23 23:45:51

从window对象引用'x‘

代码语言:javascript
复制
var x = 0;

function a(key, ref) {
    ref = ref || window;  // object reference - default window
    ref[key]++;
}

a('x');                   // string
alert(x);
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10231868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档