将函数添加到String.Prototype

时间:2013-12-27 04:53:15

标签: javascript

在阅读Secrets of the JavaScript Ninja时,我在部分功能应用程序中遇到了这段代码:

String.prototype.csv = String.prototype.split.partial(/,\s*/);

var results = ("Mugan, Jin, Fuu").csv();

console.log("results:", results);

但是,当我试图在jsfiddle(http://jsfiddle.net/Y2Tv4/)中运行它时,我收到了这个错误:

  

未捕获的TypeError:对象函数split(){[native code]}没有方法'partial'

如何将csv功能添加到String.Prototype

1 个答案:

答案 0 :(得分:0)

下面是执行此方法的代码和从@elclanrs获取的引用,给出了url good one bro。 看看这个FIDDLE http://jsfiddle.net/Y2Tv4/1/

    Function.prototype.partial = function(){
    var fn = this, args = Array.prototype.slice.call(arguments);
    return function(){
      var arg = 0;
      for ( var i = 0; i < args.length && arg < arguments.length; i++ )
        if ( args[i] === undefined )
          args[i] = arguments[arg++];
      return fn.apply(this, args);
    };
  };

String.prototype.csv = String.prototype.split.partial(/,\s*/);

     var results = ("Mugan, Jin, Fuu").csv();
 console.log(results);