이것은 자바 스크립트 일뿐입니다.
void
은 매우 이상한 JavaScript 연산자입니다. 피연산자를 평가 한 결과 undefined
이 결과로 나타납니다. 그래서
() => void (x === 0 && this.setZero())
... 항상 this.setZero()
(x === 0
경우)를 호출의 가능한 부작용으로, undefined
을 반환 화살표 기능입니다.
왜 무효에 X의 === 0 & & this.setZero()를 포장 하는가?
오히려 false
을 돌아보다 기능 항상 반환 undefined
을하도록 (x === 0
이 true
경우) 또는 this.setZero()
의 결과 (x === 0
이 false 인 경우).
이 패턴의 이름은 무엇입니까?
특별히 하나는 없다고 생각합니다.
귀하의 () => x === 0 && this.setZero()
대체품은 false
또는 this.setZero()
의 결과를 반환합니다.
난 그냥
() => void (x === 0 && this.setZero())
당신이 return
를 사용하지 않는 한 자세한 화살표 기능이 아무것도 반환하지 않기 때문에
() => { x === 0 && this.setZero(); }
는 않습니다 정확히 않습니다 것입니다; 또 다른 대안은 다음과 같습니다
() => { if (x === 0) this.setZero(); }
이 여기에 사용될 수있는 이유는이 화살표 함수는 약속을 계속에 사용되는 가능성, 그리고 개발자가 특별히 *하지 * 돌아가려면 않습니다 설명하기 위해 하나 'FALSE'또는 'this.setZero()'의 결과를 얻지 만, 단순히 약속/약속을 지키지 않아도된다. 'void '는이 결과를 얻기위한 매우 간단한 방법입니다. – cdhowie
@cdhowie : Heh, 방금 추가 했었지만 (약속 비트가 아닙니다). 'void '는이 경우에는 장황한 화살표보다 작기 때문에주의하십시오. –
소형이지만 분명히 혼란 스럽습니다. 코드를 혼동하면 버그 및 유지 관리 문제가 발생합니다.장황하게하고 minifier가 그들의 일을하게하는 것이 좋습니다. –