2014-09-02 4 views
0

나는 고급 모드에 폐쇄 컴파일러에 다음 코드를 넣어 객체 h.b=1?폐쇄는 컴파일러 무시 개체 변이

+1

생성자에'this.b = null'을 추가해보십시오. 아마도 숨겨진 클래스가 여러 개인 코드를 무시하는 방식으로 최적화되었을 것입니다. – plalx

+0

@plalx 생성자에'this.b = 1'을 추가하고 싶습니다. – qwertymk

+0

그 자체로 질문은 유효하지만 [이 패턴을 사용하면 안됩니다] (http://stackoverflow.com/q/10406552/1048572) – Bergi

답변

1

고급 컴파일 옵션이 몇 가지 가정을 포함하는 aggressive property removal 수 있도록 :

그것은 속성이 "프로토 타입"또는 정의하는 강한 가정을 만드는 "이"이상 반복함으로써 제거를위한 후보되지 않습니다.

/** @constructor */ function cls() { this.x = 1; // removal candidate due to "this" assumption; }

그래서 당신이보고있는 것은 사실 this.a = a가 제거되고, 다음 속성 ba로 이름이 변경되고있다.