JavaScript의 경우 자체 Array 객체는 단지 배열일 뿐이며 키워드를 통해 저장된 데이터에 대한 액세스를 제공할 수 없습니다. jQuery 소스 코드는 이 문제를 해결하는 아주 좋은 방법을 제공합니다.
함수 캐시(키, 값) {
// 네이티브 프로토타입과의 충돌을 피하기 위해 (키 " ")를 사용하세요
// 속성(문제 #157 참조)
if (keys.push(key = " ") > Expr.cacheLength) {
// 가장 최근 항목만 유지
캐시 삭제[keys.shift()];
}
반환(캐시[키] = 값);
}
캐시 반환;
}
위 소스코드는 컴파일 결과 캐시를 생성하기 위한 코드입니다.
소스 코드에서 키는 키를 저장하는 데 사용되고, 캐시 객체는 키-값 쌍을 저장하는 데 사용되며, 최대 키 수는 전역 변수 Expr.cacheLength를 통해 제어됩니다. 첫 번째 키와 키 값은 자동으로 삭제됩니다.
이 코드는 클로저 구조를 사용하여 외부 코드가 키 변수에 액세스하는 것을 방지하여 키 변수의 보안을 보장합니다. 물론 JavaScript 문의 특성으로 인해 외부 코드는 캐시 속성을 수정하여 키와 키-값 쌍을 불일치하게 만들 수 있습니다. 그러나 고의로 장난을 치지 않는 한, 이것 자체는 별로 문제가 되지 않습니다.
물론, 기본키 중복 판단 등 핵심 기능을 제공하지 않기 때문에 완전한 사전 객체를 선언할 수는 없습니다. 관심 있는 친구가 개선해 주면 됩니다.