Javascript는 현재 가장 인기 있는 크로스 플랫폼 언어 중 하나여야 합니다. 저는 프론트엔드에서 몇 가지 흥미로운 것들을 시도해 보았지만 이 언어를 잘 익히지 못했다는 것을 알게 되었습니다. 시간이 좀 아깝기 때문에 지금의 여유시간을 활용해 부족한 부분을 추가하고 싶습니다.
이것의 암시적 바인딩
처음 봤을 때는 이해가 안 되는 내용이었습니다. 그런 다음 유사한 상황에서 유사한 방법을 사용하여 동일한 문제를 해결할 수 있습니다. 그래서 지식을 정리해서 쉽게 찾을 수 있도록 노력했습니다.
Javascript 언어의 설계 오류인데, 함수는 객체, 배열은 객체 등은 필연적인 오류인 것 같습니다. "Javascript: The Good Parts"의 예 인용
이때 합의 결과는 7입니다.
이 모드에서 함수를 호출하면 전역 변수에 바인딩됩니다.
즉, 현재 환경에서는
이렇게 부르면 됩니다.
};
console.log(user.hello());
이 메서드에서 변수를 정의하고 this 값을 할당하면 내부 함수는 해당 변수를 통해 this에 액세스할 수 있습니다.
var that = this
따라서 상황이 좀 더 복잡할 경우 다음을 사용해야 합니다.
1. 이 변수의 범위는 항상 가장 가까운 엔클로징 함수에 의해 결정됩니다.
2. 이 바인딩을 내부적으로 사용할 수 있도록 하려면 지역 변수(예: me, self, that)를 사용하십시오.
간단한 예:
var MM = 함수(){
z = 새로운 M();
This.name = "MM";
z.printName = 함수(){
console.log(this.name);
};
z.printName()을 반환합니다.
};
var mm = 새로운 MM;
이렇게 하면 MM이 반환됩니다. 또한 ES5에서는 콜백 함수의 바인딩 메서드를 사용할 수 있습니다.
기타
또 안녕, 세상
우연히 print('Hello')('World')를 만났고 'Hello, World'를 출력했습니다.
소위 고차 함수라는 것이 매우 유용한 것 같습니다. 관심이 있으시면 다음 기사를 읽어보세요.