फ़ंक्शन का नाम सीखना कैसे संभव है?मैं जावास्क्रिप्ट फ़ंक्शन के अंदर फ़ंक्शन का नाम कैसे प्राप्त कर सकता हूं?
नीचे कोड अलर्ट 'ऑब्जेक्ट'। लेकिन मुझे यह जानने की जरूरत है कि "बाहरी" कैसे चेतावनी दी जाए।
function Outer(){
alert(typeof this);
}
फ़ंक्शन का नाम सीखना कैसे संभव है?मैं जावास्क्रिप्ट फ़ंक्शन के अंदर फ़ंक्शन का नाम कैसे प्राप्त कर सकता हूं?
नीचे कोड अलर्ट 'ऑब्जेक्ट'। लेकिन मुझे यह जानने की जरूरत है कि "बाहरी" कैसे चेतावनी दी जाए।
function Outer(){
alert(typeof this);
}
मुझे लगता है कि आप ऐसा कर सकते हैं कि:
var name = arguments.callee.toString();
इस बारे में अधिक जानकारी के लिए, this article पर एक नज़र डालें।
function callTaker(a,b,c,d,e){
// arguments properties
console.log(arguments);
console.log(arguments.length);
console.log(arguments.callee);
console.log(arguments[1]);
// Function properties
console.log(callTaker.length);
console.log(callTaker.caller);
console.log(arguments.callee.caller);
console.log(arguments.callee.caller.caller);
console.log(callTaker.name);
console.log(callTaker.constructor);
}
function callMaker(){
callTaker("foo","bar",this,document);
}
function init(){
callMaker();
}
दुर्भाग्यवश 'arguments.callee' को बहिष्कृत किया गया है, लेकिन चूंकि ईसीएमए ने अभी तक किसी भी विकल्प को परिभाषित नहीं किया है, इसलिए यह तरीका है। – Boldewyn
@ बोल्डविन: अधिक खोज के बाद मैंने उसे भी देखा। लेकिन जब इसे हटा दिया गया है, यह अभी भी अधिकांश ब्राउज़रों में काम करता है। और जैसा कि आपने कहा था, कोई विकल्प नहीं है sooooo ... ^^ – marcgg
@ बोल्डविन, 'arguments.callee' सिर्फ बहिष्कृत नहीं है। जब सख्त मोड सक्षम होता है, तो इसे एक्सेस करने से TypeError का कारण बनता है। – bryantsai
यह काम करेगा:
function test() {
var z = arguments.callee.name;
console.log(z);
}
यह चयनित उत्तर के बजाय सही उत्तर है। –
मैं उत्सुक हूँ, किस परिस्थिति में होगा समारोह आप में है, उसके नाम से एक कोड में लिखा नहीं वास्तव में? – bryantsai
@bryantsai: 'window [window.prompt ('फंक्शन नाम:', '')] = function() {alert (arguments.callee.name); }; – Boldewyn