> 웹 프론트엔드 > JS 튜토리얼 > 'function' 키워드 없이 ES6 객체 메소드를 정의할 수 있나요?

'function' 키워드 없이 ES6 객체 메소드를 정의할 수 있나요?

DDD
풀어 주다: 2024-12-04 21:51:11
원래의
1004명이 탐색했습니다.

Can ES6 Object Methods Be Defined Without the

"함수" 키워드가 없는 메서드 정의: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿