JavaScript에서 이 포인터를 처리하는 것은 모든 사람에게 공통적인 문제입니다. 여기에서는 JavaScript에서 이 포인터 오류를 해결하는 방법을 설명하는 예를 제공합니다. 도움이 필요한 친구는 이를 참조할 수 있습니다.
다음 개체 정의를 살펴보세요.
'use strict' var jane = { name : ‘Jane', display : function(){ retrun 'Person named ' + this.name; } };re이 방법은 다음과 같은 호출이 잘못 될 것입니다. :
jane.display();
var func = jane.display; func()모든 함수에는 특수한 이 변수가 있습니다. 예를 들어 다음 forEach
TypeError: Cannot read property 'name' of undefinedsayHiToFriends를 호출하면 오류가 발생합니다.
var func2 = jane.display.bind(jane); func2()
'Penson named Jane'
해결 방법 1:
이것은 다른 변수에 저장됩니까var jane = { name : 'Jane', friends: ['Tarzan', 'Cheeta'], sayHiToFriends: function(){ 'use strict'; this.friends.forEach(function(friend) { // 'this' is undefined here console.log(this.name + ' says hi to '+ friend); }); } }
해결 방법 2:
forEach의 두 번째 매개 변수를 사용하면 이 변수에 값을 할당할 수 있습니다jane.sayHiToFriends()위는 다음과 같습니다. 제가 모두를 위해 정리한 내용이 앞으로 모든 사람에게 도움이 되기를 바랍니다. 관련 기사:
JavaScript에서 객체를 생성하는 7가지 방법(요약, 필독)
Javascript는 Java에서 Map 객체 기능을 구현합니다(자세한 답변, 코드 첨부)JavaScript 구성 함수 및 새로운 연산자 (핵심 사항, 반드시 읽어야 함)
위 내용은 JavaScript에서 이 포인팅 오류를 해결하는 방법을 설명하는 예(그림 및 텍스트 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!