इस कोड में मैंने कुछ फ़ंक्शन नामक फ़ंक्शन बनाया है। फिर मैंने Function.prototype.apply और कॉल विधियों को संशोधित किया। तो मेरे फ़ंक्शन कोड के बजाय काम कर रहा है मैं अपना इंटरसेप्शन कोड चला रहा हूं (जो एक चेतावनी दिखाता है)। लेकिन न तो "कॉल" और न ही "लागू" प्रत्यक्ष विधि कॉल को रोकता है। क्या यह इसे रोकना संभव है?क्या मैं सीधे नामक फ़ंक्शन को रोक सकता हूं?
Function.prototype.call = function(){alert("call");};
Function.prototype.apply = function(){alert("apply");};
function someFunction(){}
window.onload = function(){
someFunction.call(this); //call alert is shown
someFunction.apply(this); //apply alert is shown
someFunction(); //how can I intercept this?
}
शायद मैं Function.constructor समारोह बदल सकते हैं:
मैं एक ब्लॉग पोस्ट इन सब का निष्कर्ष है। – yilmazhuseyin
@yilmazhuseyin: नहीं, आप नहीं कर सकते। * फ़ंक्शन * कन्स्ट्रक्टर को बदलना आपको केवल 'नया फ़ंक्शन (str)' के साथ बनाए गए कार्यों को ओवरराइड करने की अनुमति देगा। –
हाँ आप सही हैं। फ़ंक्शन न्यू कन्स्ट्रक्टर() {अलर्ट ("ए");}; Function.prototype.constructor = newConstructor; काम नहीं किया। – yilmazhuseyin