2017-04-25 10 views
6

से स्थिर विधि कॉल मैं एक स्थिर विधि के साथ एक वर्ग है:js वर्ग

class User { 

constructor() { 
    User.staticMethod(); 
} 

static staticMethod() { 

} 

} 

वहाँ बहुत स्थिर तरीकों के लिए कुछ इस तरह (अर्थात एक उदाहरण के बिना वर्तमान वर्ग को देखें) है।

this.staticMethod() 

इसलिए मुझे कक्षा का नाम 'उपयोगकर्ता' लिखना नहीं है।

+2

संख्या स्थिर तरीकों के साथ बात Thats, वे उदाहरण आधारित नहीं हैं, लेकिन ** वर्ग ** आधारित। – Randy

+0

@ रैंडी मैंने अभी इसे एक उदाहरण के रूप में इस्तेमाल किया है। मुझे PHP की तरह कुछ चाहिए, इसलिए मैं कक्षा (इसका उदाहरण नहीं) – Chris

+0

देख सकता हूं यदि आप प्रति फ़ाइल एक वर्ग को परिभाषित करते हैं, तो आप 'const self = user' जैसी रेखा जोड़ सकते हैं और फिर' self.' का उपयोग कर सकते हैं। पूरे फाइल में। – mpen

उत्तर

10

MDN दस्तावेजीकरण से

स्टेटिक विधि कॉल वर्ग पर सीधे बना रहे हैं और वर्ग के उदाहरण पर प्रतिदेय नहीं कर रहे हैं। स्टेटिक विधियों को अक्सर उपयोगिता कार्यों का उपयोग किया जाता है।

अधिक जानकारी के लिए कृपया देखें =>https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static

आप कुछ इस तरह =>this.constructor.staticMethod()); स्थिर विधि कॉल करने के लिए कर सकते हैं।

class StaticMethodCall { 
    constructor() { 
    console.log(StaticMethodCall.staticMethod()); 
    // 'static method has been called.' 

    console.log(this.constructor.staticMethod()); 
    // 'static method has been called.' 
    } 

    static staticMethod() { 
    return 'static method has been called.'; 
    } 
} 
1

static चीजें उदाहरण के बजाए कक्षा में बंधे हैं। तो आपको कम से कम कक्षा का नाम निर्दिष्ट करना होगा।

यदि आप उन्हें कक्षा में बांधना नहीं चाहते हैं तो उन्हें वैश्विक बनाएं।

0
इस User.staticMethod के बजाय

() आप this.constructor.staticMethod जोड़ सकते हैं()