private Variablen und Netscape 4.7
Riccardo
- javascript
Hallo!
Ich hab ein kleines Script geschrieben, das mit Objekten arbeitet.
function Menu(id)
{
var menuId = id;
var menuEntrys = new Array();
this.addEntry = addEntry;
function addEntry(entry)
{
var contains = false;
//Hier ist menuEntrys nicht mehr vorhanden (Fehlermeldung menuEntrys has no properties)
for(var i = 0; i < menuEntrys.length; i++)
{
if(menuEntrys[i].getId() == entry.getId())
contains = true;
}
if(!contains)
menuEntrys.push(entry);
}
}
function MenuEntry(id)
{
var id = id;
this.getId = getId;
function getId()
{
return id;
}
}
In meiner Html-Seite habe ich folgenden Aufruf:
<script type="text/javascript">
<!--
var menu;
var menuEntry;
menu = new Menu('menu');
menuEntry = new MenuEntry('e1', 'Entry1', '#');
menu.addEntry(menuEntry);
menuEntry = new MenuEntry('e2', 'Entry2', '#');
menu.addEntry(menuEntry);
//-->
</script>
Mein Problem ist jetzt, das Netscape 4.7 bei dem Aufruf von menu.addEntry(menuEntry) eine Fehlermeldung bringt: "menuEntrys has no properties"
Weiss jemand eine Lösung für das Problem? Die Variable sollte aber private bleiben, wenn es geht.
MfG
Riccardo
Hallo,
Weiss jemand eine Lösung für das Problem? Die Variable sollte aber private bleiben, wenn es geht.
also sowas möchtest du vermeiden?
var menuEntrys = [];
function Menu(id)
{
var menuId = id;
Grüsse
Cyx23
Hallo Cyx23!
also sowas möchtest du vermeiden?
var menuEntrys = [];
function Menu(id)
{
var menuId = id;
Ja, das will ich vermeiden. Ebenso
function Menu(id)
{
this.menuEntrys = new Array();
}
MfG
Riccardo
Hallo,
also sowas möchtest du vermeiden?
var menuEntrys = [];
function Menu(id)
{
var menuId = id;Ja, das will ich vermeiden. Ebenso
schade, es schien zu funktionieren.
Aber vielleicht so:
<script>
function Menu(id){
var menuId = id;
var menuEntrys = new Array();
document.menuEntrys = menuEntrys;
this.addEntry = addEntry;
function addEntry(entry) {
var contains = false;
for(var i = 0; i < document.menuEntrys.length; i++)
{
if(document.menuEntrys[i].getId() == entry.getId())
contains = true;
}
if(!contains)
document.menuEntrys.push(entry);
}
}
function MenuEntry(id)
{
var id = id;
this.getId = getId;
function getId()
{
return id;
}
}
</script>
<script type="text/javascript">
<!--
menu = new Menu('menu');
menuEntry = new MenuEntry('e1', 'Entry1', '#');
menu.addEntry(menuEntry);
menuEntry = new MenuEntry('e2', 'Entry2', '#');
menu.addEntry(menuEntry);
//-->
</script>
Grüsse
Cyx23