SOURCE

// function createArray(...elements) {
//   let handler = {
//     get(target, propKey, receiver) {
//       let index = Number(propKey);
//       if (index < 0) {
//         propKey = String(target.length + index);
//         console.log('propKey==',propKey)
//       }
//       return Reflect.get(target, propKey, receiver);
//     }
//   };
//   let target = [];
//   target.push(...elements);
//   return new Proxy(target, handler);
// }

// let arr = createArray('a', 'b', 'c');
// console.log(arr[-5])

// var pipe = function (value) {
//   var funcStack = [];
//   var oproxy = new Proxy({} , {
//     get : function (pipeObject, fnName) {
//       if (fnName === 'get') {
//         return funcStack.reduce(function (val, fn) {
//           return fn(val);
//         },value);
//       }
//       funcStack.push(window[fnName]);
//       return oproxy;
//     }
//   });
//   return oproxy;
// }
// var double = n => n * 2;
// var pow    = n => n * n;
// var reverseInt = n => n.toString().split("").reverse().join("") | 0;
// pipe(3).double.pow.reverseInt.get; // 63

// let obj = {
//     name: 'lxh',
//     age:18
// }

// let obj1 = Object.create(obj)
// console.log('obj1==', obj1)
// console.log('obj.__proto__==', obj.__proto__)


var myObject = {
  foo: 1,
  set bar(value) {
    return this.foo = value;
  },
}
console 命令行工具 X clear

                    
>
console