메이비 편지가 이렇게 묘하게 쓰인다고?빨리 일어나!
MayBe 함수 정의
const MayBe = function (val) {
this.value = val;
}
MayBe.of = function (val) {
return new MayBe(val);
}
MayBe는 데이터를 보유할 수 있는 편지로 맵 함수를 실현합니다
MayBe.prototype.isNothing = function() {
return (this.value === null || this.value === undefined);
};
MayBe.prototype.map = function(fn) {
return this.isNothing() ? MayBe.of(null) : MayBe.of(fn(this.value));
};
MayBe 맵은 전송된 함수를 적용하기 전에 isNothing 함수를 사용하여 용기의 값이null 또는 undefined인지 확인합니다.
(this.value === null || this.value === undefined);
결과가 true이면 MayBe는null을 반환합니다. 그렇지 않으면 뒤에 있는 함수 결과를 반환합니다.
간단한 실례
간단하게 MayBe를 만듭니다.
MayBe.of("abcd").map((x) => x.toUpperCase())
결과는 일목요연하다.
MayBe { value: 'ABCD' }
만약 우리가 abcd를null로 바꾸면 어떻게 될까요?
MayBe.of(null).map((x) => x.toUpperCase())
결과:
MayBe { value: null }
코드가 붕괴되지 않았습니다. 보안 용기인 MayBe에 값을 봉인했기 때문입니다. 모든 오류가 발생하지 않고 MayBe로 되돌아왔을 뿐입니다.of(null)
주의하다
예를 들어 다음과 같이 하십시오.
MayBe.of("word")
.map( () => undefined )
.map( (x) => "hello" + x )
위의 코드를 실행하면 결과를 얻을 수 있습니다.
MayBe { value: null }
첫 번째 맵 함수가undefined로 되돌아와도 두 번째 맵은 호출됩니다!이것도 undefined를 되돌려줍니다. 왜냐하면 이전 맵은null/undefined를 되돌려 주었기 때문입니다. 단지 전송된 매개 변수를 적용하지 않습니다!
지금까지 여러분께 공유한 내용입니다. 좋아요를 누르는 것을 잊지 마세요!안녕히 주무세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.