Javascript/Typescript에서 "let _self = this"는 무엇을 의미합니까?
이 코드 스니펫에서, 왜?this.identifier효과는 없지만,_self.url일?
getConfig() {
let _self = this;
return function () {
this.page.url = this.url || window.location.href;
this.page.identifier = _self.identifier;
this.page.category_id = this.categoryId;
this.language = this.lang;
};
}
그것도let _self = this정말로?
함수에는 컨텍스트라는 것이 있습니다.컨텍스트는 함수가 호출되는 개체입니다.
let person = {
name:"bill",
speak:function(){
console.log("hi i am "+this.name)
}
}
만약 당신이 사람을 한다면요. ㅠㅠ
정의된 개체에서 호출됩니다.변수person컨텍스트입니다.
그래서 이렇게 말할 때.그것은 person.name 라고 말하는 것과 같습니다.
이제 기능을 다른 곳에 연결할 수 있습니다.
var newperson = {name:'jill'}
newperson.speak = person.speak;
인쇄됩니다.hi i am jill전화가 왔을 때.
이제 2단계로 넘어가겠습니다.
GetConfig는 함수를 반환하지만 이 함수는 개체에 연결되지 않습니다.
이것 좀 보세요.
let person = {
name:"bill",
getSpeakFunction:function(){
return function(){
console.log('hi my name is '+this.name)
}
}
}
let func = person.getSpeakFunction()
이제 함수 func는 모두 혼자입니다.
이제 누가 누구인지 불릴 때this대체 누구를 말하는 겁니까?그것이 기능이 생각하고 있는 것입니다.
그래서 우리는 다음과 같이 기능을 도울 수 있습니다.
let person = {
name:"bill",
getSpeakFunction:function(){
let context = this; //listen hear function this is what i am talking about
return function(){
console.log('hi my name is '+context.name)
}
}
}
let func = person.getSpeakFunction()
this언어가 이것의 가치를 결정하지만 문맥은 그렇지 않습니다.컨텍스트는 할당된 모든 컨텍스트가 됩니다.프로그래머가 변경하지 않으면 변경되지 않습니다.
그래서 단어를 사용하는 것._self,context,$this또는 이 값을 할당할 때 다른 값을 사용할 수 있습니다.다른 일반 변수와 마찬가지로 '제자리에 고정'되어 있습니다.
let a = 2;
//this will never change
let _self = this //_self will never change as it's your variable
이제 당신이 당신의 기능을 호출하고 그것이 찾을 때._self그것은 당신이 무슨 말을 하는지 정확히 알고 있습니다.
그것은 가치가 있습니다.this(함수를 호출하는 방법에 따라 결정됨) 그리고 변수에 저장합니다 (폐쇄에서 여전히 액세스 가능) (다른 값을 가질 것)this라는 말이 나올 때는getConfig반환됨).
언급URL : https://stackoverflow.com/questions/40976031/what-does-let-self-this-mean-in-javascript-typescript
'programing' 카테고리의 다른 글
| 파이썬에서 사용 가능하고 활성화된 네트워크 연결이 있는지 확인하려면 어떻게 해야 합니까? (0) | 2023.06.20 |
|---|---|
| 종료는 돌연변이 자체 매개 변수를 암시적으로 캡처할 수 없습니다. (0) | 2023.06.20 |
| 404를 단일 페이지 앱으로 리디렉션하도록 스프링 부팅 구성 (0) | 2023.06.20 |
| 몽구스에서 모든 것을 찾는 방법은? (0) | 2023.06.20 |
| 데이터 테이블의 열만 다른 데이터 테이블로 복사하려면 어떻게 해야 합니까? (0) | 2023.06.15 |