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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
| "use strict";
var _createClass = function () {
function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _class, _desc, _value, _class2;
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['keys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable;
if ('value' in desc || desc.initializer) { desc.writable = true; }
desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc);
if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; }
if (desc.initializer === void 0) { Object['defineProperty'](target, property, desc); desc = null; }
return desc; }
var log = function log(target, name, descriptor) { var oldValue = descriptor.value; if (typeof descriptor.value === "function") { descriptor.value = function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; }
return console.log(oldValue.apply(this, args)); }; } else { console.log(descriptor.value); } };
var foodCategory = function foodCategory(target, name, descriptor) { target.category = "food"; };
var Cola = foodCategory(_class = (_class2 = function () { function Cola(name) { _classCallCheck(this, Cola);
this.name = name; }
_createClass(Cola, [{ key: "color", value: function color() { return "red"; } }]);
return Cola; }(), (_applyDecoratedDescriptor(_class2.prototype, "color", [log], Object.getOwnPropertyDescriptor(_class2.prototype, "color"), _class2.prototype)), _class2)) || _class;
var cola = new Cola("Coca Cola"); cola.color(); console.log(Cola.category);
|