Object.dynamicProperty
by khrome
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/mootools/1.4.5/mootools-core-full-compat.js"></script>
JavaScript
// this is just a hack to reinvent part of what defineProperty already does
Object.dynamicProperty = function(object, key, func){
if(typeOf(object) == 'class'){
var dummy = {}
dummy[key] = {
toString : function(){
return func();
}
};
object.implement(dummy);
}else{
object[key] = {
toString : function(){
return func();
}
};
}
};
var a = new Element('a');
Object.dynamicProperty(a, 'mykey', function(){
return 'awesomeness';
});
document.writeln('1:'+a.mykey);
var MyNiftyClass = new Class({});
Object.dynamicProperty(MyNiftyClass, 'mykey', function(){
return 'spiffitude';
});
var dummy = new MyNiftyClass();
document.writeln('2:'+dummy.mykey);