code: function Walker(traversalStrategy) {
    if (!(this instanceof Walker))
      return new Walker(traversalStrategy);
  
    // There are two different strategy shorthands: if a single string is
    // specified, treat the value of that property as the traversal target.
    // If an array is specified, the traversal target is the node itself, but
    // only the properties contained in the array will be traversed.
    if (isString(traversalStrategy)) {
      var prop = traversalStrategy;
      traversalStrategy = function(node) {
        if (isObject(node) && prop in node) return node[prop];
      };
    } else if (Array.isArray(traversalStrategy)) {
      var props = traversalStrategy;
      traversalStrategy = function(node) {
        if (isObject(node)) return pick(node, props);
      };
    }
    this._traversalStrategy = traversalStrategy || defaultTraversal;
  }
docs: Returns an object containing the walk functions. If `traversalStrategy` is specified, it is a function determining how objects should be traversed. Given an object, it returns the object to be recursively walked. The default strategy is equivalent to `_.identity` for regular objects, and for DOM nodes it returns the node's DOM children.