Hayır, bu, JavaScript'te mümkün değildir. Btw, kesinlikle diziler yerine Nesneleri (özellik-değer haritaları) kastetmişsinizdir. İki çözümleri:
tam olarak istediğiniz şeyi yapmak için tasarlanmış bir Proxy
olarak nesneyi uygulamak. Yine de, sadece bir taslak ve şu anda sadece supported in Firefox' Javascript 1.8.5.
Nesne özellikleri yerine string parametresiyle bir getter işlevi kullanın. Bu işlev, giriş anahtarını dahili bir "sözlük" nesnesinde arayabilir ve yanlışları program aracılığıyla ele alabilir - örn. dinamik olarak değerler oluşturmak veya varsayılan değerleri döndürmek.
Elbette bu tür alıcı işlevleri için bir fabrika kurabilirsiniz.
function defaultDict(map, default) {
return function(key) {
if (key in map)
return map[key];
if (typeof default == "function")
return default(key);
return default;
};
}
var a = defaultDict({cat: 1}, 0);
console.log(a('cat')); // 1
console.log(a('dog')); // 0
http://stackoverflow.com/questions/812961/javascript-getters-and-setters-for-dummies – goat
Bergi ve rambo, teşekkürler, ama ben de sanmıyorum Bunların aradığı şeyi yapmak. A.get ('köpek') uygulamak için arıyorum - Bazı varsayılan değer dönmek için ['köpek'] arıyorum. Bu şekilde diziyi kullanan kod, onu düzenli bir dizi olarak ele alabilir. – Parand