나는 JS 초보자이며, 이해를 돕기 위해 Javascript Patterns 책을 읽었다. 내가 볼 수있는 코드 조각 중 하나 이것은 새로운 속성을 나타냅니다Javascript : 함수에 새 속성을 추가하지 않으려면 어떻게해야하나요?
var myFunc = function param() {
...
...
};
myFunc.cache={};
는 함수 본문 외부의 누군가에 의해 추가 할 수 있습니다. 이것은 캡슐화를 깨뜨리지 않습니까? 프로그램의 다른 부분에서 새로운 속성을 계속 추가하여 개체 생성을 부피가 커지게한다면 어떻게 될까요? 누군가 내가 정의한 속성을 삭제/수정하면 어떻게 될까요?
나는 이것이 "문제"라고 부르는 것이 옳은지 나는 모른다. 그러나 만약 그렇다면, 이것을 피하는 접근법으로 도움을 청하십시오.
감사합니다.
엄격 모드를 사용하지 않으면 freeze() 후에도 추가/삭제할 수 있습니까? – WinOrWin
@WinOrWin - 엄격 모드가 아닌 경우 코드가 실행되지만 아무 것도 나타나지 않습니다. 그래서 그들은'o.c = 3'을 원하는만큼 쓸 수 있지만'o'는 그대로 남아 있습니다. – ChaosPandion