[英]Javascript: Use a function to change variables to true/false
我在我的函數中使用布爾 True/False 時遇到問題。
HTML:
<a onclick="selectCategory(animal);">Animal</a>
<a onclick="selectCategory(food);">Food</a>
<a onclick="selectCategory(thing);">Thing</a>
Javascript:
var animal = false;
var food = false;
var thing = false;
function selectCategory(category)
{
if(category != true)
{
category = true;
}
else
{
category = false;
}
}
例如,我希望此函數檢查變量 "animal" 是否為false
,然后它應該變為true
。 如果為true
,則變為false
。
每當我嘗試這個時,它總是變成true
,永遠不會回到false
。 變量category
似乎不會影響我的變量animal
、 food
和thing
。 它只會將category
更改為true
就像它是一個新變量一樣。
在 99% 的情況下,重新分配一個原語(或任何變量)本身不會做任何事情。 改用包含布爾值的對象,傳遞屬性名稱,然后在對象上重新分配屬性:
const obj = { animal: false, food: false, thing: false }; function selectCategory(category){ obj[category] = !obj[category]; console.log(obj); }
<a onclick="selectCategory('animal');">Animal</a> <a onclick="selectCategory('food');">Food</a> <a onclick="selectCategory('thing');">Thing</a>
在這種情況下,您肯定必須返回,因為您所做的更改只是函數作用域的局部。 但是我的方法將是通過使用對象來使用小的更改的更好方法:
var myConfig = { animal: false, food: false, thing: false }; function selectCategory(which) { myConfig[which] = !myConfig[which]; console.log(myConfig); }
<a href="#" onclick="selectCategory('animal'); return false;">Animal</a> <a href="#" onclick="selectCategory('food'); return false;">Food</a> <a href="#" onclick="selectCategory('thing'); return false;">Thing</a>
要記住的幾點:
return false
並給出href
以獲得兼容性。myVar = !myVar
切換布爾值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.