私はいくつかのJavaScriptコードを継承しましたが、私は実際にはJavaScriptの専門家ではありません。hasOwnProperty()が配列用Chromeで動作しない
私たちは、buckets
と呼ばれるハッシュと値の集合のように機能するオブジェクトを持っています。それはハッシュ値であるプロパティを持ち、各プロパティはオブジェクトです。ここでは、ブラウザのデバッガで次のようになります。
私たちはバケツオブジェクト内のハッシュが存在するかどうかを確認するためにhasOwnProperty()
を使用していますcontainsKey()
機能を持っています。
containsKey: function(key) {
var hash = this.comparer.getObjectHashCode(key);
if (!this.buckets.hasOwnProperty(hash))
return false;
var array = this.buckets[hash];
for (var i = 0; i < array.length; i++) {
if (this.comparer.areEqual(array[i].key, key))
return true;
}
return false;
}
このコードは、少なくとも3年間完璧に動作しています。ここ数週間でChromeでの作業が停止しました。 IEではまだ正常に動作します(FFについてはわかりません)。
私はそれが仕事を続けなければならないようです。私はbuckets
に検索されているハッシュプロパティが含まれていることを確認しました。しかし、hasOwnProperty()
はfalseを返すようになりました。
もっと適切な機能がありますか?それは、デバッガに失敗していますのはここ
です:
どのように動作しませんか?コンソールにエラーが報告されていますか? '.hasOwnProperty()'がどのように動作するかという問題がどのように分かっていますか? – Pointy
コードをここに追加するか、jsfiddle ... –
質問に書いたように:「バケットには検索されているハッシュプロパティが含まれていることを検証しましたが、hasOwnProperty()は現在falseを返しています。これは問題が 'hasOwnProperty()'にあることを私が知る方法です。 どのようなコードを追加する必要がありますか?これは関連する機能です。コードベース全体は53Kラインです。 – Pete