흥미로운 질문:
실제로 여기에 관련된 것은 []
运算符 和.
연산자와 관련된 지식입니다.
관련 규칙과 웹사이트가 첨부되어 있으니 직접 공부하실 수 있습니다:
MemberExpression : MemberExpression [표현식]
baseReference를 MemberExpression을 평가한 결과로 둡니다.
baseValue를 GetValue(baseReference)로 설정합니다.
ReturnIfAbrupt(baseValue).
propertyNameReference를 표현식 평가 결과로 둡니다.
propertyNameValue를 GetValue(propertyNameReference)로 설정합니다.
ReturnIfAbrupt(propertyNameValue).
bv를 RequireObjectCoercible(baseValue)로 둡니다.
ReturnIfAbrupt(bv).
propertyKey를 ToPropertyKey(propertyNameValue)로 둡니다.
ReturnIfAbrupt(propertyKey).
평가 중인 구문 생성과 일치하는 코드가 strict 모드 코드인 경우 strict를 true로 하고, 그렇지 않으면 strict를 false로 둡니다.
기본 값이 bv이고 참조 이름이 propertyKey이며 엄격한 참조 플래그가 strict인 Reference 유형의 값을 반환합니다.
MemberExpression : MemberExpression
baseReference를 MemberExpression을 평가한 결과로 둡니다.
baseValue를 GetValue(baseReference)로 설정합니다.
ReturnIfAbrupt(baseValue).
bv를 RequireObjectCoercible(baseValue)로 둡니다.
ReturnIfAbrupt(bv).
propertyNameString을 IdentifierName의 StringValue로 설정하세요
평가 중인 구문 생성과 일치하는 코드가 strict 모드 코드인 경우 strict를 true로 하고, 그렇지 않으면 strict를 false로 둡니다.
기본 값이 bv이고 참조 이름이 propertyNameString이며 엄격한 참조 플래그가 strict인 Reference 유형의 값을 반환합니다.
CallExpression : CallExpression [표현식]
포함된 CallExpression이 1단계에서 평가된다는 점을 제외하면 MemberExpression : MemberExpression [ Expression ]과 정확히 동일한 방식으로 평가됩니다.
CallExpression : IdentifierName
포함된 CallExpression이 1단계에서 평가된다는 점을 제외하면 MemberExpression : MemberExpression .IdentifierName과 정확히 동일한 방식으로 평가됩니다.
ECMAScript 2015 #sec-property-accessors
사실 Object toString의 문제입니다.