जावास्क्रिप्ट में वैश्विक संपत्ति/फ़ंक्शन को ओवरराइट किया गया है, तो वैश्विक ऑब्जेक्ट के गुणों और कार्यों को ओवरराइट करना आसान बनाता है। मैं यह जांचने का एक तरीका ढूंढना चाहता हूं कि वैश्विक संपत्ति का मूल संस्करण बदल दिया गया है या नहीं।जांचें कि जावास्क्रिप्ट
<script type="text/javascript">
window.encodeURIComponent = eval;
</script>
<script type="text/javascript" src="myscript.js"></script>
myscript.js कहीं encodeURIComponent फ़ंक्शन को कॉल करते हैं, तो यह अब अप्रत्याशित व्यवहार होगा:
कोई अपने HTML में इस डाल पर विचार करें। तो क्या कोई तरीका है कि मैं myscript.js के अंदर जांच कर सकता हूं अगर किसी ने इसे इस्तेमाल करने से पहले उस फ़ंक्शन को अधिलेखित कर दिया हो?
यह करने का यह वास्तव में चालाक और क्रॉस-ब्राउज़र तरीका है। – sg3s
धन्यवाद स्टेन। क्या आप यह भी सुनिश्चित करना चाहते हैं कि 'eval' की toString प्रॉपर्टी को' function() {return "function encodeURIComponent() {[मूल कोड]}" जैसे कुछ के साथ ओवरराइट नहीं किया गया है; } '? –
'toString' को पार्स करने और कॉल करने के बजाय आप इसे' window.encodeURIComponent.name' 'कर सकते हैं .. किसी भी तरह से इस http://stackoverflow.com/a/10266791/474290 –