How to negate bool inside function in JS?

boolean, javascript, negate

Solution

Objects are not passed by reference but by value which is a reference (copy of reference)...

In your example you're not even passing an object but a primitive value type.

If you want a reference, then you need to wrap it in object element like:

var test = { val: true };

function changeThisBoolPlease(asd){
    asd.val=!asd.val;
}

alert(test.val);
changeThisBoolPlease(test);
alert(test.val);

Problem

I'm writing some script now and I have a problem when trying to negate boolean inside a function. I mean this: ``` var test = true; function changeThisBoolPlease(asd){ asd=!asd; } alert(test); changeThisBoolPlease(test); alert(test); ``` alerts true, then true. Any ideas? Isn't JS reference perfect? EDIT: Ok, this was only a part of my function: ``` function przesun(kolor, figury, castlings, x1, y1, x2, y2, strona) { kolor = nowaPozycjaKolor(kolor,x1, y1, x2, y2); figury = nowaPozycjaFigur(figury,x1, y1, x2, y2); strona = !strona; } ``` Actually I cannot return this value. How to?

Original source

Related problems