[javascript] तीर समारोह बनाम समारोह घोषणा / अभिव्यक्ति: क्या वे बराबर / विनिमय योग्य हैं?



0 Answers

इस Plnkr उदाहरण को देखो

वेरिएबल this बहुत अलग समय है बटन को कॉल करने पर प्रत्येक बार केवल 1 तक timesCalled जाता है। जो मेरे व्यक्तिगत प्रश्न का उत्तर देता है:

.click( () => { } )

तथा

.click(function() { })

दोनों लूप में उपयोग किए जाने पर समान संख्या में फ़ंक्शंस बनाते हैं क्योंकि आप Plnkr में ग्रिड गिनती से देख सकते हैं।

Question

कैनोनिकल प्रश्न यदि आपको तीर फ़ंक्शन के साथ फ़ंक्शन घोषणा / अभिव्यक्ति को बदलने के बाद समस्याओं के बारे में कोई प्रश्न मिलता है, तो कृपया इसे इस के डुप्लिकेट के रूप में बंद करें।

ES2015 में तीर कार्य एक संक्षिप्त संक्षिप्त वाक्यविन्यास प्रदान करते हैं। क्या मैं अब अपने सभी फ़ंक्शन घोषणाओं / अभिव्यक्तियों को तीर फ़ंक्शंस के साथ बदल सकता हूं? मुझे क्या देखना है?

उदाहरण:

कन्स्ट्रक्टर फ़ंक्शन

function User(name) {
  this.name = name;
}

// vs

const User = name => {
  this.name = name;
};

प्रोटोटाइप विधियों

User.prototype.getName = function() {
  return this.name;
};

// vs

User.prototype.getName = () => this.name;

वस्तु (शाब्दिक) तरीकों

const obj = {
  getName: function() {
    // ...
  }
};

// vs

const obj = {
  getName: () => {
    // ...
  }
};

कॉलबैक

setTimeout(function() {
  // ...
}, 500);

// vs

setTimeout(() => {
  // ...
}, 500);

वैराडिक फ़ंक्शन

function sum() {
  let args = [].slice(arguments);
  // ...
}

// vs
const sum = () => {
  let args = [].slice(arguments);
  // ...
};



Related