Firefox 9에서 이상한 JavaScript 문제가있는 사람은 누구입니까? 우리는 두 가지 문제가 있습니다.Firefox 9의 JavaScript 문제
첫 번째 경우는 true를 반환해야 할 때 instanceof 연산자가 false를 반환한다는 것입니다. Firebug를 사용하여 검사 할 때, 변수는 확실히 기대 한 것이지만 false를 반환합니다. 그러나 코드 내에 추가 중단 점을 추가하면 true가 반환됩니다. 더 많은 중단 점 추가를 제외하고는 아무 것도 할 수 없으며 작동을 시작할 것입니다.
또 다른 예로, 전역 적으로 액세스되는 함수 내에서 범위가 지정된 변수를 만들었습니다. 이런 식으로 뭔가 (우리는 글로벌 네임 스페이스를 만들 YUI 2를 사용주의) : 내 개인 페이지, YAHOO.MyNS.showPanel에
YAHOO.namespace("MyNS");
(function() {
var _panel;
YAHOO.MyNS.showPanel = function() {
if (!_panel) {
// code to create _panel
_panel = new YAHOO.widget.Panel(...);
}
_panel.show();
};
YAHOO.MyNS.hidePanel = function() {
if (_panel && _panel !== null && _panel.cfg.getProperty("visible")) {
_panel.hide();
}
};
})();
는() 잘 작동,하지만 나중에 YAHOO.MyNS를 호출 할 때. hidePanel(), _panel이 정의되지 않았기 때문에 실패합니다. showPanel() 및 hidePanel() 메서드에서 모두 중단 점에 배치하면 _panel이 정의되지 않습니다.
우리는 어려움을 겪고 있습니다. 새로운 기능이기 때문에 파이어 폭스에서 타입 추론 기능을 끄는 것이 효과가 있었는지 아닌지 확인하려고 시도했습니다.
참고 : if (_panel && _panel! == null ...)가 중복되었습니다. null은 위증입니다. if (_panel && _panel.cfg && _panel.cfg.getProperty && ... 더 적절할 것입니다.) – Tracker1