चलें इस तरह समारोह की कल्पना:जावास्क्रिप्ट में चेन करने योग्य फ़ंक्शन कैसे बनाएं?
var x, y;
x = 'Notepad';
y = foo(x);
console.log(y); // Prints 'Notepad+'.
मैं समारोह है कि अन्य कार्यों के साथ chainable है बनाने के लिए एक रास्ता तलाश कर रहा हूँ: जैसे
function foo(x) {
x += '+';
return x;
}
यह प्रयोग किया जाएगा।
कल्पना कीजिए उपयोग:
var x, y;
x = 'Notepad';
y = x.foo().foo().toUpperCase(); // Prints 'NOTEPAD++'.
console.log(y);
मैं यह कैसे करना होगा?
इसे जोड़ने से पहले देशी प्रकारों पर कम से कम किसी संपत्ति की जांच करना अच्छा विचार है, यानी 'if (! (String.prototype में' foo ')) {String.prototype.foo = function() {.. ।}} ' – keeganwatkins
यदि आप गणना को तोड़ने के बिना किसी ऑब्जेक्ट को विस्तारित करना चाहते हैं, तो (अर्ध-आधुनिक) [' object.defineProperty'] का उपयोग करें (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ ऑब्जेक्ट/डिफ़ाइनप्रोपर्टी): 'ऑब्जेक्ट.डेफिनप्रोपर्टी (स्ट्रिंग.प्रोटोटाइप, {वैल्यू: फ़ंक्शन() {इसे + + + +;}} वापस करें) '। डिफ़ॉल्ट रूप से 'गणना करने योग्य' ध्वज 'झूठा' पर सेट होता है। – Phrogz
@ किगानवाटकिन्स हाँ यह है :)। मुझे लगता है कि ओपी केवल उदाहरण के रूप में तारों के बारे में पूछ रहा था, इसलिए मैंने चेतावनियों को न्यूनतम रखा, लेकिन यह एक अच्छा मुद्दा है। –