[javascript] मैं ES2015 में नामित तीर फ़ंक्शन कैसे लिखूं?


Answers

नहीं। तीर वाक्यविन्यास अज्ञात कार्यों के लिए एक छोटा सा है। बेनामी फ़ंक्शन, ठीक है, अज्ञात हैं।

नामित फ़ंक्शंस function कीवर्ड के साथ परिभाषित किए जाते हैं।

Question

मेरे पास एक ऐसा कार्य है जिसे मैं ES6 में नए तीर वाक्यविन्यास में बदलने की कोशिश कर रहा हूं। यह एक नामित समारोह है:

function sayHello(name) {
    console.log(name + ' says hello');
}

बिना किसी कथन के नाम देने का कोई तरीका है:

var sayHello = (name) => {
    console.log(name + ' says hello');
}

जाहिर है, मैं इसे परिभाषित करने के बाद ही इस फ़ंक्शन का उपयोग कर सकता हूं। कुछ ऐसा करने जैसा है:

sayHello = (name) => {
        console.log(name + ' says hello');
    }

क्या ईएस 6 में ऐसा करने का कोई नया तरीका है?




नामित तीर फ़ंक्शन लिखने के लिए आप सहयोगी उदाहरण को जोड़ सकते हैं, जहां मेरे पास LoginClass नामक एक वर्ग है और इस कक्षा के अंदर मैंने फ़ंक्शन नामक एक तीर लिखा है, जिसका नाम successAuth क्लास LoginClass {

    constructor() {

    }

    successAuth = (dataArgs)=> { //named arow function

    }

}



ऐसा प्रतीत होता है कि यह ES7 के साथ संभव होगा: https://babeljs.io/blog/2015/06/07/react-on-es6-plus#arrow-functions कार्यक्षमता

दिया गया उदाहरण है:

class PostInfo extends React.Component {
  handleOptionsButtonClick = (e) => {
    this.setState({showOptionsModal: true});
  }
}

ES6 तीर फ़ंक्शंस का शरीर समान रूप से उस कोड के रूप में साझा करता है जो उन्हें घेरता है, जो हमें वांछित परिणाम प्राप्त करता है क्योंकि ईएस 7 संपत्ति प्रारंभकर्ताओं को स्कॉप्ड किया जाता है।

ध्यान दें कि यह लेबल के साथ काम करने के लिए मुझे सबसे प्रयोगात्मक ES7 चरण 0 वाक्यविन्यास सक्षम करने की आवश्यकता है। मेरी webpack.config.js फ़ाइल में मैंने बैबेल लोडर को इस प्रकार अपडेट किया है:

{test: /\.js$/, exclude: /node_modules/, loader: 'babel?stage=0'},



Related