JavaScript 객체 리터럴의 "this" 키워드 이해
JavaScript의 객체 리터럴 내에서 "this" 키워드의 동작은 상당히 다를 수 있습니다. 다른 프로그래밍 언어에서. 작동 방식에 대한 포괄적인 설명은 다음과 같습니다.
콜 타임 바인딩
다른 후기 바인딩 언어와 달리 JavaScript는 컴파일 중이 아닌 호출 시 "this"를 바인딩합니다. 시간 또는 런타임. 즉, "this"의 값은 함수가 호출되는 방식에 따라 달라집니다.
바인딩 규칙
JavaScript 객체 리터럴에서 "this"에 대한 바인딩 규칙은 다음과 같습니다. 다음:
사용 사례 예시
다양한 바인딩 규칙을 설명하려면:
const obj = { foo: "Foo", bar() { console.log(this.foo); // "Foo" - "this" refers to the object }, }; obj.bar(); // Calls the method, binding "this" to the object
function MyDate(date) { this.date = date; } const obj1 = { foo: new Date(), bar: new MyDate(this.foo), // Error: this.foo is undefined }; const obj2 = { foo: new Date(), bar: new MyDate(obj2.foo), // Works: "this" refers to obj2 };
첫 번째 예에서는 "this"는 해당 메서드를 개체 메서드라고 부르기 때문에 "obj" 개체를 참조합니다. 두 번째 예에서는 함수가 개체 컨텍스트 없이 호출되므로 "obj1"에서 "this"가 정의되지 않습니다. "obj2"에서 "this"는 "this" 개체를 사용하여 함수가 명시적으로 호출되므로 "obj2"를 참조합니다.
위 내용은 JavaScript 객체 리터럴에서 'this' 키워드는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!