UNPKG

ola-toolkit

Version:

ola 开发工具套件

53 lines (44 loc) 1.5 kB
'use strict'; 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 {*} */