function toggleMe (){
var a = 0;
return function(){
if(a =true){
a = false;
}else if (a =false) {
a =true;
}
return a;
}
}
var a = toggleMe();
var b= a();
console.log(b);
console.log(b);
function toggleMe() {
// я кажется начинаю понимать ОТ кого придумали typescript...
var a = 0; // если логика подразумевает логический тип, зачем init-значение число?
return function() {
if(a = true) { // это условие всегда будет истинно, независимо от a, в a сохраним значение true
a = false;
} else if (a = false) { // в принципе тоже что и выше, но еще этот код не достижим
a = true;
}
return a;
}
}
var a = toggleMe(); // в a извлекли функцию с замыканием
var b = a(); // в b будет false
console.log(b);
console.log(b); // а второй лог что-то меняет? нет
function toggleMe() {
var a = 0;
return function() {
if(a = true) {
a = false;
} else a = false /* удаляем недостижимый код if (a = false) {
a = true;
} */
return a;
}
}
function toggleMe() {
var a = 0;
return function() {
a = true
a = false;
/* этот if разворачивается однозначно
if(a = true) {
a = false;
} else a = false */
return a;
}
}
function toggleMe() {
var a = 0;
return function() {
return false;
/* незачем это вычислять каждый раз, все и так однозначно
a = true
a = false;
return a; */
}
}
// если вызвать этот код несколько раз:
var a = toggleMe();
var b = a();
console.log(b);
console.log(b);
// то оптимизатор в конце концов сократит его до
console.log(false);
console.log(false);
// а функцию выкинет совсем
function toggleMe() {
var a = false;
return function() {
return a = !a;
};
}
var b = toggleMe();
console.log(b());
console.log(b());
function toggleMe (){
var a = 0; //я бы сразу задал булевое значение,
//например false;
return function(){
//можно обойтись без if, сразу присвоить
//переменной а, противоположное значение
//и вернуть, как-то так: return a=!a;
if(a =true){ //если хочется if, проверку
//равенства делают так if(a==true)
//или ещё проще, тут: if(a)
a = false;
}else if (a =false) { //этот if вообще не нужен
a =true;
}
return a;
}
}
var a = toggleMe();
var b= a(); //вы присваивание результат
//выполнения функции переменной b,
//чтобы значение b менялось,
//функцию нужно вызывать заново,
//Можно так b=a(); и b выводить,
//Но лучше сразу выводить a()
console.log(b);
console.log(b);
function toggleMe(){
let a = false;
return () => a = !a;
}
const a = toggleMe();
console.log(a()); //true
console.log(a()); //false