jobo: javascript und templates - PURE und Alternativen

Beitrag lesen

Hallo,

function json2html(template, jsobj) {

return document.getElementById(template).innerHTML.replace(/${([^}]+)}/g,
    function(full, key) { return jsobj[key] || ''; });
}

  
Macht Douglas Crockford auch so:  
  
~~~javascript
  
String.prototype.supplant = function (o) {  
    return this.replace(/{([^{}]*)}/g,  
        function (a, b) {  
            var r = o[b];  
            return typeof r === 'string' ?  
                r : a;  
        }  
    );  
};  

http://www.json.org/fatfree.html

Ich frage mich immer noch, warum man das Template nach den Markern untersucht {abc}, statt umgekehrt. Crockford untersucht ja immerhin noch r, ob es ein String ist, falls JObject[key] nicht existieren sollte. Das bräuchte man ja nicht, wenn man jedes key des Objektes durchlaufen würde. Vorteil wohl, dass man nur die keys abfrägt, die auch im Template vorhanden sind. Und sie auch dann mit Leerzeichen ersetzt, wenn das Objekt diese Eigenschaft garnicht hat.

Gruß

jobo