首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript中的"reference“?

javascript中的"reference“?
EN

Stack Overflow用户
提问于 2011-11-02 05:12:26
回答 4查看 106关注 0票数 2

我有一组变量,用来判断调查中的问题是否得到了回答,它们最初设置为false:q0=false; q1=false; qX=false;。然后在主体中,我有几个绑定了.change(function(){ counter_radio(q#,INPUT'S_ID); });input type="radio"。以下是函数counter_radio()的代码:

代码语言:javascript
复制
function counter_radio(q,id){
    if (q===false) {
        q=true;
        count++;
        $("#counter").css("width", count);
        $("#percent").text(count + "%");
    }
    $("span#"+id).append(", "+q);
    $("span#"+id).fadeIn();
}

我希望计数器只递增一次(第一次从集合中选择一个无线电时)。但是,每次input type=radio更改时,计数器都会递增。我的问题是,q返回true,但q#仍然是false。在php中,我会让q引用q#,这样当q设置为true时,q#也设置为true。javascript中有这样的构造吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-02 06:05:02

正如其他人所说,像布尔值这样的简单变量在Javascript中是通过值传递的,而不是通过引用传递的,所以没有办法改变这一点。

如果您有多个变量,如下所示:

代码语言:javascript
复制
var q0=false, q1=false, qX=false;

然后,将它们放在一个数组中可能会更容易:

代码语言:javascript
复制
var qArray = [false, false, false];

然后,因为数组和对象是以可以修改原始数据的方式传递的,所以可以像这样将数组和索引传递给函数,然后就可以修改函数中的原始数据了:

代码语言:javascript
复制
function counter_radio(q, index, id){
    if (q[index] === false) {
        q[index] = true;
        count++;
        $("#counter").css("width", count);
        $("#percent").text(count + "%");
    }
    $("span#"+id).append(", " + q[index]);
    $("span#"+id).fadeIn();
}

counter_radio(qArray, 2, id);
票数 1
EN

Stack Overflow用户

发布于 2011-11-02 05:16:03

您可以将绑定函数更改为:

.change(function(){ q# = counter_radio(q#,INPUT'S_ID); });

并在counter_radio函数的末尾添加一个return q;

票数 3
EN

Stack Overflow用户

发布于 2011-11-02 05:15:41

这方面没有原生语法,但你可以使用对象:

代码语言:javascript
复制
function counter_radio(q_,id){
    if (q_.ref===false) {
        q_.ref=true;
        count++;
        $("#counter").css("width", count);
        $("#percent").text(count + "%");
    }
    $("span#"+id).append(", "+q);
    $("span#"+id).fadeIn();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7972985

复制
相关文章

相似问题

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