ola-toolkit
Version:
ola 开发工具套件
53 lines (44 loc) • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty = require('babel-runtime/core-js/object/define-property');
var _defineProperty2 = _interopRequireDefault(_defineProperty);
exports.default = function (target, key, descriptor) {
var fn = descriptor.value;
var definingProperty = false;
return {
configurable: true,
get: function get() {
if (definingProperty || this === target.prototype || this.hasOwnProperty(key) || typeof fn !== 'function') {
return fn;
}
var boundFn = fn.bind(this);
definingProperty = true;
(0, _defineProperty2.default)(this, key, {
configurable: true,
get: function get() {
return boundFn;
},
set: function set(value) {
fn = value;
delete this[key];
}
});
definingProperty = false;
return boundFn;
},
set: function set(value) {
fn = value;
}
};
};
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = exports['default']; /**
* @Decorator
* 绑定方法上下文到实例
* @param target
* @param key
* @param descriptor
* @returns {*}
*/