Skip to content
Snippets Groups Projects
example.js 746 B
Newer Older
  • Learn to ignore specific revisions
  • var cu = require('./');
    
    
    // function App() {}
    // Object.defineProperty(App.prototype, 'count', {
    //   get: function () {
    //     return Object.keys(this).length;
    //   }
    // });
    // console.log(cu.getDescriptor(App.prototype, 'count'));
    
    function defineProp (obj, name, fn) {
      Object.defineProperty(obj, name, {
        enumerable: true,
        configurable: true,
        get: function () {
          return fn();
        }
      });
    }
    
    function fn() {
      console.log('hey!');
      return function (msg) {
        return 'foo ' + msg;
      };
    }
    
    var one = {
      bar: function (msg) {
        return 'bar ' + msg;
    
    };
    var two = {};
    defineProp(one, 'foo', fn);
    
    cu.copyDescriptor(two, one, 'foo');
    cu.copyDescriptor(two, one, 'bar');
    
    console.log(two.foo('a'))
    console.log(two.bar('b'))