ES6 객체의 화살표 함수
ES6에서는 기존 함수 구문과 도입된 단축 메소드 구문을 모두 사용하여 객체의 메소드를 정의할 수 있습니다. 언어:
var chopper = { owner: 'Zed', getOwner: function() { return this.owner; } };
var chopper = { owner: 'Zed', getOwner() { return this.owner; } };
단, 시도할 때 제한이 발생할 수 있습니다. 객체 메소드에서 화살표 기능을 사용합니다. 예를 들어 다음 구문을 사용하면 오류가 발생합니다.
var chopper = { owner: 'John', getOwner: () => { return this.owner; } };
또는
var chopper = { owner: 'John', getOwner: () => (this.owner) };
설명
화살표 함수에는 특정 특성이 있습니다. 물건으로 사용하기에 부적합하게 만드는 것 메서드.
따라서 ES6 객체 내에서 화살표 함수를 정의할 때 이는 함수 내에서 객체가 생성된 컨텍스트를 참조합니다. 예를 들어 전역 범위 내에서 객체 헬기를 정의하는 경우 getOwner 내부의 이 항목은 헬기 객체가 아닌 전역 범위를 참조합니다.
해결 방법
작성하려면 ES6의 객체 메소드를 사용하려면 전통적인 함수 구문이나 특별히 설계된 단축 메소드 구문을 사용해야 합니다. 개체:
var chopper = { owner: 'Zed', getOwner: function() { return this.owner; } }; // or var chopper = { owner: 'Zed', getOwner() { return this.owner; } };
이 메서드는 Chopper 개체를 참조하는 올바른 this 바인딩을 사용합니다.
위 내용은 ES6에서 객체 메소드에 화살표 함수를 사용할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!