Postponed property definitions with Troop
Basic example for troop.postpone(). Postponed properties don't get evaluated until first access.
by Dan Stocker
HTML
<script src="https://dl.dropbox.com/u/9258903/JavaScript/dessert-0.3.2.js"></script>
<script src="https://dl.dropbox.com/u/9258903/JavaScript/troop-0.6.1.js"></script>
JavaScript
var host = {};
troop.postpone(host, 'propertyName', function(host, propertyName, extraParam) {
// will be assigned to `host.propertyName`
return 'Property_' + extraParam;
}, 'extraParam');
// host.propertyName not resolved yet
$('body').append(
"property value before access: " +
typeof Object.getOwnPropertyDescriptor(host, 'propertyName').value +
"<br />");
// host.propertyName resolved on first access
$('body').append(
"property value after first access: " +
host.propertyName +
"<br />"
);