Domanda

Continuando dalla mia domanda precedente: JavaScript Codice semplice per comprendere le basi OOP basate sul prototipoDiciamo che incontriamo console questi due oggetti separati (anche se sono chiamati figlio e genitore non c'è eredità tra di loro):

var parent = {
    name: "parent",
    print: function(){
       console.log("Hello, "+this.name);
    }
};

var child = {
    name: "child",
    print: function(){
       console.log("Hi, "+this.name);
    }
};

parent.print()
// This will print: Hello, parent
child.print()
// This will print: Hi, child

temp =parent;
parent = child;
child = temp;


parent.print()
// This will now print: Hi, child
child.print() 
// This will now print: Hello, parent

Supponiamo ora che il genitore sia una libreria, come un'applicazione HTML5 in un browser, non può fare molto male perché è praticamente in esecuzione sandbox, ma ora con l'avvento del Chromeos, Firefoxos e altri OS [browser] saranno anche collegati a un nativo API, sarebbe una testa fuori dal "sandbox". Ora, se qualcuno cambia lo spazio dei nomi, sarebbe più difficile per un revisore del codice (automatizzato o meno) per individuare un uso errato se gli spazi dei nomi cambiano.

La mia domanda sarebbe: ci sono molti modi in cui si può fare la situazione di cui sopra e cosa si può fare per proteggere questi spazi dei nomi? (O nello stesso JavaScript o da alcuni strumenti di analisi del codice statico)

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top