1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
/**
* @author sunag / http://www.sunag.com.br/
*/
var NodeUtils = {
elements: [ 'x', 'y', 'z', 'w' ],
addShortcuts: function () {
function applyShortcut( proxy, property, subProperty ) {
if ( subProperty ) {
return {
get: function () {
return this[ proxy ][ property ][ subProperty ];
},
set: function ( val ) {
this[ proxy ][ property ][ subProperty ] = val;
}
};
} else {
return {
get: function () {
return this[ proxy ][ property ];
},
set: function ( val ) {
this[ proxy ][ property ] = val;
}
};
}
}
return function addShortcuts( proto, proxy, list ) {
var shortcuts = {};
for ( var i = 0; i < list.length; ++ i ) {
var data = list[ i ].split( "." ),
property = data[ 0 ],
subProperty = data[ 1 ];
shortcuts[ property ] = applyShortcut( proxy, property, subProperty );
}
Object.defineProperties( proto, shortcuts );
};
}()
};
export { NodeUtils };
|