Tutte le nostre classi dattiloscritto ereditano (direttamente o indirettamente) da:dattiloscritto MyObject.instanceOf()
export class WrObject {
className:string;
public instanceOf(name : String) : boolean {
return this.className === name;
}
}
Abbiamo poi dichiariamo una sottoclasse come:
export class Section extends WrObject {
public static CLASS_NAME = 'Section';
className = Section.CLASS_NAME;
public instanceOf(name : String) : boolean {
if (this.className === name)
return true;
return super.instanceOf(name);
}
}
e si può quindi controllare con:
if (obj.instanceOf(Section.CLASS_NAME))
Tutto funziona alla grande. Tuttavia, penso che sarebbe più pulito se potessimo fare:
if (obj.instanceOf(Section))
C'è un modo per farlo? O qualche suggerimento su un approccio migliore?
grazie - Dave
ho pensato (non riesce a trovare il post qui ora) che l'utilizzo di instanceof è stato scoraggiato a macchina come essere impreciso. Ho frainteso gli altri thread? –
dipende. Non hai intenzione di usare 'instanceof' su un' null' sei tu? ;) + è inaffidabile tra iframes (non è lo stesso 'Foo.prototype' in ogni frame se si controlla per riferimento che è ciò che questo sta facendo sotto). Probabilmente lo stesso problema nei webworker, ma non sono sicuro che – basarat
con valori nulli - no. Nel web worker - sì ovunque. Ed è con oggetti creati in un thread, pubblicati su un altro thread, e nel thread ricevente assegniamo proto per trasformare nuovamente i dati ricevuti in un oggetto. –