0
나는 고급 모드에 폐쇄 컴파일러에 다음 코드를 넣어 객체 h.b=1
?폐쇄는 컴파일러 무시 개체 변이
나는 고급 모드에 폐쇄 컴파일러에 다음 코드를 넣어 객체 h.b=1
?폐쇄는 컴파일러 무시 개체 변이
고급 컴파일 옵션이 몇 가지 가정을 포함하는 aggressive property removal 수 있도록 :
그것은 속성이 "프로토 타입"또는 정의하는 강한 가정을 만드는 "이"이상 반복함으로써 제거를위한 후보되지 않습니다.
/** @constructor */ function cls() { this.x = 1; // removal candidate due to "this" assumption; }
그래서 당신이보고있는 것은 사실 this.a = a
가 제거되고, 다음 속성 b
은 a
로 이름이 변경되고있다.
생성자에'this.b = null'을 추가해보십시오. 아마도 숨겨진 클래스가 여러 개인 코드를 무시하는 방식으로 최적화되었을 것입니다. – plalx
@plalx 생성자에'this.b = 1'을 추가하고 싶습니다. – qwertymk
그 자체로 질문은 유효하지만 [이 패턴을 사용하면 안됩니다] (http://stackoverflow.com/q/10406552/1048572) – Bergi