यहां क्या हो रहा है?जावास्क्रिप्ट में ऑब्जेक्ट (और इसके विपरीत) द्वारा सरणी बनाना?
var x = {length:3, '0':'foo', '1':'bar','2':'f', splice:function(){}}
यह वास्तव में एक सरणी बनाता है:
["foo", "bar", "f"]
कहाँ इस संरचना सिंटैक्स के लिए दस्तावेज़ है?
यह भी स्मार्ट है:
के लिए बदल रहा: (नोटिस 0, 1, 3)
var x = {length:3, '0':'foo', '1':'bar','3':'f', splice:function(){}}
इच्छा गंदगी सरणी और यह हो जाएगा:
["foo", "bar", undefined × 1]
इसके अलावा, को हटाने स्प्लिस फ़ंक्शन:
var x = {length:3, '0':'foo', '1':'bar','2':'f'}
पैदावार: (नियमित वस्तु)
Object
0: "foo"
1: "bar"
2: "f"
length: 3
__proto__: Object
तो मैं दो प्रश्न हैं:
इस संरचना क्या है?
length , element , splice
मैं
['john','paul','yoko']
है कहो और अब मैं वस्तुvar x = {length:3, '0':'john', '1':'paul','2':'yoko', splice:function(){}}
मैं यह कर होगा कैसे बनाना चाहते हैं?
* यह वास्तव में एक सरणी बनाता है *, क्यों? क्योंकि कंसोल इसे एक सरणी के रूप में दिखाता है? शायद कुछ अनुकूलित परीक्षण। 'x.constructor' 'कार्य ऑब्जेक्ट() ...' देता है। – Yoshi
योशी आपको एक बिंदु मिला: 'Object.prototype.toString.apply (x)' = '" ऑब्जेक्ट ऑब्जेक्ट] "' –