"함수" 키워드가 없는 메서드 정의: ES6 기능
이 기사에서는 특이한 관찰, 즉 성공적인 실행에 대해 자세히 알아봅니다. "function" 키워드가 없는 객체 메서드. 이 이상한 동작은 특정 브라우저에서 발생하여 그 기원과 의미를 숙고하게 합니다.
문제의 개체 메서드 정의는 다음과 같습니다.
var module = { foobar(arg1) { alert(arg1); } };
기존 JavaScript 구문에서 이 메서드는 다음과 같습니다. 다음과 같이 선언되었습니다:
foobar: function(arg1) {}
그러나 이 경우 "함수"가 생략되어 호환성 및 ES6과의 잠재적인 연결에 대한 의문이 제기되었습니다. 기능.
답변
예, 이 메소드 정의는 ES6의 객체 메소드에 대한 새로운 구문의 결과입니다. ES6에서는 약칭 표기법을 사용하여 "function" 키워드 없이도 보다 간결한 메서드 정의가 가능합니다. 이는 기존 함수에 대한 단순화된 대안을 제공하는 화살표 함수를 사용하여 달성됩니다.
ECMAScript 6 사양에는 메서드 정의와 관련하여 다음이 명시되어 있습니다.
A property of an object can also refer to a function or a getter or setter method. var o = { property: function ([parameters]) {}, get property() {}, set property(value) {}, }; In ECMAScript 6, a shorthand notation is available, so that the keyword "function" is no longer necessary. // Shorthand method names (ES6) var o = { property([parameters]) {}, get property() {}, set property(value) {}, * generator() {} };
따라서 메서드 정의는 "함수"가 없는 것은 특정 브라우저에서 지원되는 유효한 ES6 구문입니다. 그러나 원래 질문에서 언급했듯이 이 기능은 다양한 브라우저 버전에서 보편적으로 호환되지 않을 수 있습니다.
위 내용은 'function' 키워드 없이 ES6 객체 메소드를 정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!