javascript questions जावास्क्रिप्ट में हैऑनप्रोपर्टी




javascript programs (3)

function Shape() {
    this.name = "Generic";
    this.draw = function() {
        return "Drawing " + this.name + " Shape";
    };
}

function welcomeMessage()
{
    var shape1 = new Shape();
    //alert(shape1.draw());
    alert(shape1.hasOwnProperty(name));  //this is returning false
}

body.onload पर कॉल किया गया। body.onload इवेंट।

मुझे उम्मीद है कि shape1.hasOwnProperty(name) सच लौटने के लिए, लेकिन यह झूठी वापसी।

सही व्यवहार क्या है?


इसे इस्तेमाल करे:

function welcomeMessage()
{
    var shape1 = new Shape();
    //alert(shape1.draw());
    alert(shape1.hasOwnProperty("name"));
}

जावास्क्रिप्ट में प्रतिबिंब के साथ काम करते समय, सदस्य वस्तुओं को हमेशा एक स्ट्रिंग के रूप में नाम के रूप में प्रस्तुत किया जाता है। उदाहरण के लिए:

for(i in obj) { ... }

लूप इटरेटर मैं संपत्ति के नाम के साथ एक स्ट्रिंग मान रखूंगा। कोड में इसका उपयोग करने के लिए आपको इस तरह सरणी ऑपरेटर का उपयोग करके संपत्ति को संबोधित करना होगा:

 for(i in obj) {
   alert("The value of obj." + i + " = " + obj[i]);
 }

hasOwnProperty को संपत्ति के नाम को एक स्ट्रिंग के रूप में उम्मीद है, इसलिए यह shape1.hasOwnProperty("name")


hasOwnProperty एक सामान्य जावास्क्रिप्ट फ़ंक्शन है जो एक स्ट्रिंग तर्क लेता है।

जब आप shape1.hasOwnProperty(name) कॉल करते हैं तो आप इसे name चर (जो मौजूद नहीं है) का मान पास कर रहे हैं, जैसा कि आपने alert(name) लिखा होगा।

आपको hasOwnProperty को एक स्ट्रिंग वाले name साथ कॉल करने की आवश्यकता है, जैसे: shape1.hasOwnProperty("name")





javascript