Firefox 9で奇妙なJavaScriptの問題が発生している人は誰ですか?我々は2つの問題を抱えている。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()メソッドの両方でブレークポイントをfirebugに配置すると、_panelは未定義ではありません。
私たちは困惑しています。それは新しい機能なので、Firefoxでタイプ推論機能を無効にして、それが違いを生み出していないかどうかを確認しました。
注:if(_panel && _panel!== null ...)は冗長です... nullは偽です。 – Tracker1