Javascript Can't Call Push On Array Inside Another Function -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 6 उत्तर
मेरे पास एक बहुत सरल जावास्क्रिप्ट है प्रश्न ...
मेरे पास एक फ़ंक्शन है, पालतू जानवर , जिसमें तीन चर शामिल हैं: एक पूर्णांक, एक स्ट्रिंग, और एक परिभाषित सरणी निम्नानुसार है:
फ़ंक्शन पालतू जानवर () {var index; Var नाम; विविध जानवर = ["बिल्ली", "कुत्ते"]; }
इस एक के ठीक नीचे दूसरे फ़ंक्शन में मैं पालतू जानवर प्रकार के एक चर घोषित करता हूं और जानवरों सरणी पर "माउस" को दबाएं। मैं फिर मूल्यों को देखने के लिए एक कंसोल लॉग करता हूं।
फ़ंक्शन टेस्ट () {... var pets = new pets (); Pets.index = 1; पालतू जानवर। नाम = "मेरे पालतू जानवर"; pets.animals.push ( "माउस"); console.log (पालतू जानवर); }
जो भी कारण से मुझे कंसोल से कोई आउटपुट दिखाई नहीं देता।
फिर मैंने जानवरों को फोन करने से पहले और बाद में कुछ और कंसोल लॉगिंग जोड़ दिया। Push: <पूर्व>
var पालतू जानवर = नया पालतू जानवर (); Pets.index = 1; पालतू जानवर। नाम = "मेरे पालतू जानवर"; Console.log ("पुश से पहले"); console.log (पालतू जानवर); pets.animals.push ( "माउस"); Console.log ("पुश के बाद");
और यहां मेरा आउटपुट है: <पूर्व>
पुश पालतू जानवरों के पहले {अनुक्रमणिका: 1, नाम: "मेरे पालतू जानवर"}
ध्यान दें कि मैं केवल पहले कंसोल लॉग को देखता हूं और दूसरे (पुश के बाद) जो मुझे लगता है कि जानवरों पर पुश करने में समस्या को इंगित करता है
यह भी ध्यान रखें कि कंसोल आउटपुट से पता चलता है कि पालतू जानवर के पास अनुक्रमणिका नामक एक संपत्ति है और नाम नामक एक संपत्ति है लेकिन यह भी संकेत नहीं देती कि संपत्ति जानवरों जो मेरी सरणी है।
मैंने सरणी घोषणा को बदलने की कोशिश की:
var animals = new array ();
लेकिन इससे कोई मदद नहीं मिली है।
क्या इससे पहले कि मैं उस पर तत्वों को पुश कर सकता हूं, इससे पहले कि मुझे विशेष रूप से जानवरों के सरणी को प्रारंभ करना है ? अधिक सामान्यतः, पालतू जानवर वर्ग के हिस्से के रूप में संपत्ति के जानवरों को भी क्यों नहीं दिखाया गया?
धन्यवाद,
Jan
< Div class = "post-text" itemprop = "text">
आप अपने वेरिएबल्स को ऐसे तरीके से घोषित कर रहे हैं जिससे उन्हें
पालतू जानवर कंस्ट्रक्टर फ़ंक्शन
यही कारण है कि आप दूसरी कंसोल नहीं देखते हैं क्योंकि लाइन
pets.animals.push ("mouse");
त्रुटि TypeError फेंक देगा: अपरिवर्तित (या ब्राउज़र के आधार पर समान) की संपत्ति 'पुश' को नहीं पढ़ सकता है। इससे बाकी स्क्रिप्ट को निष्पादित करना बंद हो जाएगा।
पहला कंसोल लॉग में आप
अनुक्रमणिका और
नाम देख सकते हैं, क्योंकि आप अपने पालतू जानवर ऑब्जेक्ट बनाने के बाद ऑब्जेक्ट पर उन्हें बनाना। आपको उन्हें
यह ऑपरेटर का इस्तेमाल करने या प्रोटोटाइप पर सेट करके उन्हें घोषित करने की आवश्यकता है
फ़ंक्शन पालतू जानवर () {this.index = null; This.name = null; This.animals = ["बिल्ली", "कुत्ते"]; }
Comments
Post a Comment