code: function(top, right, bottom, left) {
                  if (arguments.length < 1) {
                      return new Box(this);
                  }
                  if (arguments.length < 2) {
                      right = top;
                  }
                  if (arguments.length < 3) {
                      bottom = top;
                  }
                  if (arguments.length < 4) {
                      left = right;
                  }
                  var x = this.left - left, y = this.top - top, width = this.width + right + left, height = this.height + top + bottom;
                  return new Box(x, y, width, height);
              }
docs: @method expand()
  @for kity.Box
  @description 扩展（或收缩）当前的盒子，返回新的盒子
  
  @param {Number} top
  矩形区域的上边界往上扩展的值；如果是负数，则上边界往下收缩
  
  @param {Number} right
  [Optional] 矩形区域的右边界往右拓展的值；
  如果是负数，则右边界往左收缩；
  如果不设置该值，使用和 top 同样的值。
  
  @param {Number} bottom
  [Optional] 矩形区域的下边界往下拓展的值；
  如果是负数，则下边界往上收缩；
  如果不设置该值，使用和 top 同样的值。
  
  @param {Number} left
  [Optional] 矩形区域的左边界往左拓展的值;
  如果是负数，则左边界往右收缩;
  如果不设置该值，使用和 right 同样的值。
  
  @example
  
  ```js
  var box = new kity.Box(10, 10, 20, 20);
  var box1 = box.expand(10); // [0, 0, 40, 40]
  var box2 = box.expand(10, 20); // [0, -10, 40, 60]
  var box3 = box.expand(1, 2, 3, 4); // [9, 8, 24, 26]
  ```