code: function interpolate (args) {
    var substr = this.match(rtplVars)
    var result = this
    var vars
    var argv
  
    if (isObject(args)) {
     argv = args
   } else if (Array.isArray(args)) {
     argv = argv = args
    } else if (arguments.length) {
     argv = [].slice.call(arguments)
    }
  
    if (substr == undefined || !Array.isArray(argv) && !isObject(argv)) {
     return this.toString()
    }
  
    vars = substr.map(function (str) {
     return str.replace(/(^[$#]\{)|(\}$)/g, '')
    })
  
    if (isObject(argv) || Array.isArray(argv)) {
     for (var i = 0, len = substr.length; i < len; i++) {
       result = result.replace(substr[i], argv[vars[i]])
     }
    }
  
    return result
  }
docs: Works like template string
  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings