enhancers
또는 high order functions
이 JavaScript로 작동하는 방식과 장식 된 기능을 전달하는 함수를 작성하는 방법을 이해하려고합니다.이 higher order function work를 어떻게 만들 수 있는지 설명하십시오.
function user() {
return {
name: 'amit',
age: 41
}
}
지금 나는이 공장 모의 login
방법과 같은 인증 동작을 추가합니다 :
user
공장 기능을 가지고있다. 그래서
function authUser(fn) {
fn.login =() => {
return 'you are now logged in'
}
return fn
}
가 지금은
let loggedInUser = authUser(user)
하지만이 같은 login
메소드를 호출 할 때 ...
loggedInUser().login()
내가
를 얻을이 증강에user
전달이 증강을 쓰기
Uncaught TypeError: loggedInUser(...).login is not a function
나는 fn이 인핸서 (enhancer)에 전달되는 것을 정말로 부르지 않는다는 것을 이해하고 그것이 내가 원하는 행동을 얻지 못하는 이유 일 것이다.
- 어디에서 부르겠습니까? 및
- 원래
user
개체를 로그인 메서드로 올바르게 향상 시키거나 정의 후에 더 많은 속성을 추가하려면 어떻게해야합니까?