Ich Aktualisierung ein Skript, das Parameter wie folgt überprüft:einen Prototyp auf möglicherweise leere Parameter in JS mit
if (config.param) {//do...}
Dies hat zu einigen Problemen in Truthiness führen. Ich hatte eine truthy() Funktion als Prototyp implementiert, um in der Lage sein, Folgendes zu tun:
if (config.param.truthy()) {//do...}
Das schien gut, bis ich nur, dass das Config-Objekt erinnert enthält params explizit festgelegt werden. Daher ist config.value normalerweise undefiniert im Gegensatz zu false.
Ich hatte den Prototyp in einem geeigneten Umfang über String/Number/Boolean.prototype.truthy
hinzugefügt. Ist es möglich, den Prototyp auf dem Config-Objekt so zu implementieren, dass es bei nicht definierten Parametern false zurückgeben kann?
Edit: Meine Frage ist nicht über die Wahrhaftigkeit (ich kann einfach eine Funktion verwenden), sondern stattdessen, wie ein Prototyp auf ein Objekt zu implementieren, so dass es von seinen Eigenschaften geerbt wird, die verschiedene Arten oder nicht existent sein können .
"* Ich hatte eine truthy() - Funktion als Prototyp implementiert *" - das war eine wirklich schlechte Idee. Sie sollten es als statische Funktion implementieren, an die Sie den Wert als Argument übergeben. Und Sie sollten es wirklich nicht "truthy" nennen, da dies das JS-Wahrheitskonzept impliziert. Welchen Wert möchtest du wirklich akzeptieren? – Bergi
Was genau ist das Problem, das Sie versuchen zu lösen? Wie sind insbesondere diese "Fragen in Wahrheit"? – Pointy
Verwenden Sie die Objekterkennung, um sicherzustellen, dass die gewünschten Eigenschaften mit 'in' oder' hasOwnProperty' oder 'typeof' oder' x.y == null' für Werte definiert werden, die falsch sein können. – dandavis