其他人在Firefox 9中看到奇怪的JavaScript問題?我們有兩個問題。Firefox 9中的JavaScript問題9
第一種情況是,instanceof運算符在返回true時返回false。當我使用Firebug進行檢查時,這個變量絕對是我期望的,但它返回false。但是,如果我在代碼中添加了其他斷點,那麼它將返回true。除了添加更多斷點,我無能爲力,它將開始工作。
在另一個實例中,我們創建了一個變量作用域,然後在全局訪問該函數。像這樣的東西(注意,我們使用的是YUI 2創建一個全局命名空間):
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.showPanel()工作正常,但後來當我再打YAHOO.MyNS。 hidePanel(),因爲_panel未定義而失敗。如果我在showPanel()和hidePanel()方法中都在螢火蟲中放置斷點,則_panel不是未定義的。
我們很難過。因爲這是一項新功能,所以我嘗試關閉Firefox中的類型推斷功能,以查看是否有所作爲,但沒有。
注意:if(_panel && _panel!== null ...)是多餘的...... null是虛假的。如果(_panel && _panel.cfg && _panel.cfg.getProperty && ...更合適 – Tracker1 2012-01-06 18:30:07