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 |