जैसा कि आप here (चीनी) देख सकते हैं, इस कोड का उपयोग क्रोम के परीक्षण के लिए किया जा सकता है। संपादित करें: पूरी कहानी के लिए नीचे देखें ..
के रूप में लेख में बताया गया है, क्या होता है कि क्रोम को इस तरह से ".sort (...)" विधि का अनुकूलन है कि [0, 0].sort(...)
कॉल नहीं होगा दिए गए तुलना समारोह को निष्पादित करें।
लेख से, ".sort (...)" के क्रोम का क्रियान्वयन है कुछ की तरह:
function sort(comparefn) {
var custom_compare = (typeof(comparefn) === 'function');
function Compare(x,y) {
if (x === y) return 0;
if (custom_compare) {
return comparefn.call(null, x, y);
}
...
}
0 === 0
के रूप में सच है, यह comparefn
फोन नहीं होंगे।
jQuery के मामले में, यह वैश्विक चर baseHasDuplicate
को false
पर सेट नहीं करेगा।
संपादित: यदि आप कड़ाके की धूप के स्रोत कोड ब्राउज़, उदाहरण के लिए here (के तहत "कड़ाके की धूप CSS चयनकर्ता इंजन" पीले अनुभाग, "कड़ाके की धूप चर" कहा जाता है के लिए जाना), तो आपको निम्नलिखित विवरण मिल जाएगा:
var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
done = 0,
toString = Object.prototype.toString,
hasDuplicate = false,
baseHasDuplicate = true;
// Here we check if the JavaScript engine is using some sort of
// optimization where it does not always call our comparision
// function. If that is the case, discard the hasDuplicate value.
// Thus far that includes Google Chrome.
[0, 0].sort(function(){
baseHasDuplicate = false;
return 0;
});
डिमस्टिफाइड दिखता है!
स्रोत
2010-08-10 03:08:42
थोड़ा कठोर लगता है कि – Dani
ओह जांचने के लिए आसान तरीके हैं, प्रोग्रामिंग हर जगह विफल हो जाती है। कभी-कभी लोग वास्तव में चीजों को करने का बुरा तरीका पसंद करते हैं :) –
@Dani: वास्तव में! हालांकि, कोड का इस्तेमाल किसी और चीज़ के लिए किया जा सकता है ... "जावास्क्रिप्ट निंजा" से सुनना बहुत अच्छा होगा। –