Javascript 更改函数中的布尔值无效

Javascript 更改函数中的布尔值无效,javascript,boolean,Javascript,Boolean,这是我的代码: var something = false; myFunction(something); function myFunction(x) { x = true; } 它不起作用,布尔值仍然为false。 我必须更改什么才能使其工作?确实如此,您正在将x设置为true,但仅在该范围内。您正在通过值传递x,而不是引用。 读一下您只是在函数范围内更改x,而不是它所指向的对象。 您可以通过返回x并将其设置为某个值来完成此操作 var something = false

这是我的代码:

var something = false; 
myFunction(something);    
function myFunction(x) {
    x = true;
}
它不起作用,布尔值仍然为false。
我必须更改什么才能使其工作?

确实如此,您正在将x设置为true,但仅在该范围内。

您正在通过值传递x,而不是引用。
读一下

您只是在函数范围内更改x,而不是它所指向的对象。 您可以通过返回x并将其设置为某个值来完成此操作

var something = false; 
something = myFunction(something);    
function myFunction(x) {
    x = true;
    return x;
}

console.log(something)

这将为true。

JavaScript是按值传递的。虽然可以做一些类似的事情,但您无法在JavaScript中执行您试图执行的操作。JavaScript是按值传递的,因此某些内容是
false
,而x是
true
。例如,您可以从函数返回新值,改为使用闭包(但这将非常有限)或者将要更改的值存储为对象属性并传递对象。不过,在我看来,没有什么比从函数返回新值更清楚了。@mins sigh。。。对于这个问题,最上浮的答案是完全错误的。@mins我看到了你的问题,我:)确实让你的例子不那么混乱,你应该将函数改为
function myFunction(){return true;}
并调用
something=myFunction(),因此很明显,传入的变量与发生的情况无关。