Javascript 功能在";“自然语言”;

Javascript 功能在";“自然语言”;,javascript,Javascript,我制作了一个函数“ADD”,用于修改变量的值: function ADD(xs, n) { var nom_variable = xs; var XS = eval(xs); nouvelle_valeur = eval(nom_variable + "=XS+n"); } var x = 5 ; ADD("x",5); // now x = 10 我希望函数ADD的第一个参数是x,而不是“x”。这可能吗 我希望我的学生以一种类似于自然语言的方式编写算法 谢谢 您

我制作了一个函数“ADD”,用于修改变量的值:

function ADD(xs, n)
{
    var nom_variable = xs;
    var XS = eval(xs);

    nouvelle_valeur = eval(nom_variable + "=XS+n");
}

var x = 5 ;

ADD("x",5); // now x = 10
我希望函数ADD的第一个参数是x,而不是“x”。这可能吗

我希望我的学生以一种类似于自然语言的方式编写算法


谢谢

您不能像传递引用一样传递
x
,但是您可以构造一个函数引用(或透镜),尽管您仍然没有传递
x
,而是传递一个变量,该变量是
x
的引用

var x=5;
变量外部参照={
get:function(){
返回x;
},
设置:功能(val){
x=val;
}
}
功能添加(参考,n){
var oldVal=ref.get();
参考集(旧值+n);
}
添加(外部参照,5);

控制台日志(x)
您不能像传递引用一样传递
x
,但是您可以构造一个函数引用(或透镜),尽管您仍然没有传递
x
,而是传递一个变量,该变量是
x
的引用

var x=5;
变量外部参照={
get:function(){
返回x;
},
设置:功能(val){
x=val;
}
}
功能添加(参考,n){
var oldVal=ref.get();
参考集(旧值+n);
}
添加(外部参照,5);

控制台日志(x)否,您所要求的是不可能的。如果一个值应该是一个字符串,那么它必须被引用为一个字符串。@Pointy:反射无法完成任何操作?JavaScript是按值传递的,而不是按引用传递的,所以这是不可能的。换句话说,
foo(x)
传递变量
x
的值,而不是变量
x
的引用。如果
x
的值为
42
,则
foo(x)
foo(42)
在函数内部无法区分。就我个人而言,我会以完全不同的方式构建函数。我会让它接受所有值作为输入并返回值。相关:@RadLexus reflection??在JavaScript中?不,您所要求的是不可能的。如果一个值应该是一个字符串,那么它必须被引用为一个字符串。@Pointy:反射无法完成任何操作?JavaScript是按值传递的,而不是按引用传递的,所以这是不可能的。换句话说,
foo(x)
传递变量
x
的值,而不是变量
x
的引用。如果
x
的值为
42
,则
foo(x)
foo(42)
在函数内部无法区分。就我个人而言,我会以完全不同的方式构建函数。我会让它接受所有值作为输入并返回值。相关:@RadLexus reflection??用JavaScript?