बस जिज्ञासा से बाहर के बीच अंतर ..उलझाव से वैश्विक "आइटम" चर - इंटरनेट एक्सप्लोरर और फ़ायर्फ़ॉक्स
मैं इस राशि जे एस कोड:
var someExternalArray = [{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 3, name: 'c'}];
var newArray = []
//var item;
for (var i = 0; i < someExternalArray.length; i++){
item = new Object();
item.id = someExternalArray[i].id;
item.name = someExternalArray[i].name;
newArray.push(item);
}
alert('0:' + newArray[0].name + ',1:' + newArray[1].name + ',2:' + newArray[2].name);
सूचना टिप्पणी की var item
जो परोक्ष घोषित साथ पाश छोड़ देता है item
चर।
अगर मैं फ़ायर्फ़ॉक्स पर इस कोड को चलाने के लिए, चेतावनी का परिणाम है:
0:a,1:b,2:c
अगर मैं इंटरनेट एक्सप्लोरर में एक ही कोड चलाने के लिए, परिणाम है:
0:c,1:c,2:c
यहां jsfiddle है: https://jsfiddle.net/fvu9gb26/
बेशक, जब मैंको अनदेखा करता हूं 10 यह हर ब्राउज़र में एक ही तरह से काम करता है।
क्या कोई जानता है कि यह अंतर क्यों होता है? धन्यवाद।
धन्यवाद। यह वास्तव में एक संयोग था कि हम 'var item' घोषित करना भूल गए क्योंकि हम हमेशा हमारी परियोजना में चर घोषित करते हैं और कभी भी निहित घोषणाओं पर भरोसा नहीं करते हैं। और दूसरा, कि इस चर के पास 'विंडो ऑब्जेक्ट' पर कुछ मूल विधि के समान नाम है जो केवल आईई में मौजूद है .. वाह :) –