मैं पिछले 3 घंटे के लिए इस के साथ प्रयोग करना किया गया है और अंत में यह कम से कम कुछ हद तक सुरुचिपूर्ण नया समारोह का उपयोग कर के रूप में पर सुझाव मिल गया अन्य धागे:
/**
* JavaScript Rename Function
* @author Nate Ferrero
* @license Public Domain
* @date Apr 5th, 2014
*/
var renameFunction = function (name, fn) {
return (new Function("return function (call) { return function " + name +
"() { return call(this, arguments) }; };")())(Function.apply.bind(fn));
};
/**
* Test Code
*/
var cls = renameFunction('Book', function (title) {
this.title = title;
});
new cls('One Flew to Kill a Mockingbird');
यदि आप उपरोक्त कोड चलाते हैं, तो आपको अपने कंसोल पर निम्न आउटपुट देखना चाहिए:
Book {title: "One Flew to Kill a Mockingbird"}
स्रोत
2014-04-05 11:41:00
क्या आप समझ सकते हैं कि आप किस समस्या को हल करने की कोशिश कर रहे हैं? – Philipp
@ फिलिप: उदाहरण के लिए, ओपी कुछ कन्स्ट्रक्टर को किसी अन्य के साथ बदलने में रुचि रख सकता है, लेकिन इसे मूल कन्स्ट्रक्टर के समान नाम दे रहा है, इसलिए कोड समान फ़ंक्शन नाम देखता है। यह उन कारणों में से एक हो सकता है जिनका मैं सामना कर रहा हूं। लेकिन मुझे यकीन है कि कुछ भी हैं। आपके जवाब में –