JavaScript는 현재 가장 인기있는 크로스 플랫폼 언어 중 하나 여야합니다. 나는 프론트 엔드에서 흥미로운 것들을 가지고 놀았지만, 나는이 언어를 잘 마스터하지 않았다는 것을 알았습니다. 나는 조금 부주의했기 때문에 누락 된 것들을 추가 할 시간이있는 시간을 이용하고 싶었습니다.
이 숨겨진 바인딩
처음에 이것은 내가 혼란 스러웠던 것이었지만 처음 보았을 때 이해하지 못했습니다. 그런 다음 비슷한 상황에서 동일한 문제를 비슷한 방법으로 해결할 수 있습니다. 그래서 쉽게 검색하기 위해 지식을 분류하려고 노력했습니다.
이것은 JavaScript 언어 설계 오류이지만,이 오류는 불가피한 것 같습니다. 함수는 객체, 배열 등입니다. "JavaScript : The Good Parts"의 인용 예제.
코드 사본은 다음과 같습니다.
함수 추가 (a, b) {return a+b}
var sum = 추가 (3,4);
Console.log (합); // sum = 7
현재 합계의 결과는 7입니다.
코드 사본은 다음과 같습니다.
> 추가 유형
> '번호'
여기에서 볼 수 있듯이 ADD 유형은 숫자 값입니다.
이 모드에서 함수를 호출 할 때 이것은 글로벌 변수로 바인딩됩니다.
즉, 현재 환경에서 우리는 이런 식으로 이것을 호출 할 수 있습니다.
코드 사본은 다음과 같습니다.
this.add (3,4)
이것은 이것의 암시 적 바인딩이며, 이것은 다른 방식으로 구속 될 것입니다.
코드 사본은 다음과 같습니다.
var hello = function () {
"안녕하세요" + this.name을 반환합니다.
};
이름 = 'this';
Console.log (hello ());
그러면 우리는 안녕하세요, 이걸 얻을 것입니다. 그리고 언제
코드 사본은 다음과 같습니다.
var hello = function () {
"안녕하세요" + this.name을 반환합니다.
};
var user = {
안녕하세요 : 안녕하세요,
이름 : 'Phodal',
};
console.log (user.hello ());
현재 사용자의 Hello는 Hello 기능을 가리키며, 우리의 이해에서 이것이 어떻게 가능합니까? 그래서 그것은 버그입니다.
이 메소드의 변수를 정의 하고이 값을 할당하면 내부 함수가 해당 변수를 통해 이에 액세스 할 수 있습니다.
var that = this
상황이 조금 더 복잡 할 때 우리는 다음을 사용해야합니다.
코드 사본은 다음과 같습니다.
Vat that = this;
팁 :
1.이 변수의 범위는 항상 가장 가까운 동봉 함수에 의해 결정됩니다.
2.이 바인딩을 내부적으로 사용할 수 있도록 로컬 변수 (예 : 나, 자아 등)를 사용하십시오.
간단한 예 :
코드 사본은 다음과 같습니다.
var m = function () {
this.name = "m";
};
var mm = function () {
z = new m ();
this.name = "mm";
z.printname = function () {
Console.log (this.name);
};
return z.printname ();
};
var mm = 새로운 mm;
이 시점에서 이것은 m 함수, 즉 mm 자체를 가리 킵니다. 우리가 이것을 m에서 제거하면 반환되지 않은 정의되지 않았습니다. 따라서 우리는 그 또는 자아 등과 같은 현재 범위에 대한 별칭을 만듭니다.
코드 사본은 다음과 같습니다.
var mm = function () {
z = new m ();
this.name = "mm";
var self = 이것;
z.printname = function () {
Console.log (self.name);
};
return z.printname ();
};
이렇게하면 MM을 반환 할 수 있습니다. 또한, 콜백 함수의 결합 방법은 ES5에서 사용될 수 있습니다.
코드 사본은 다음과 같습니다.
var mm = function () {
z = new m ();
this.name = "mm";
z.printname = function () {
Console.log (this.name);
} .Bind (this);
return z.printname ();
};
바인드는 방법을 수신기에 바인딩 할 수 있습니다.
다른
또 다른 안녕하세요, 세계
우연히 인쇄 ( 'Hello') ( 'World')를 만난 다음 'Hello, World'를 출력했습니다.
소위 고차 기능은 매우 유용한 것 같습니다. 관심이 있으시면 다음 기사를 확인할 수 있습니다.