2017-04-13 69 views
0

我可以这样做吗?通过链接在字符串上调用方法(需要字符串参数)

var mystring = "http%3A%2F%2Fstackoverflow.com%2F"; 

var mydecodedstring = mystring.apply(decodeURIComponent); 

我知道我能做到这一点

var mydecodedstring = decodeURIComponent(mystring); 

但我想这个链如果可能的语法的目的。只是好奇,如果有可能的话。我的目标是:

mystring.????? 
+0

如果你想创建一个自定义的'String.method',看看[String.prototype](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Global_Objects /字符串/原型)。有一篇关于方法链接和使用原型的好文章[这里](https://schier.co/blog/2013/11/14/method-chaining-in-javascript.html)。 – Santi

+0

添加String方法是唯一的方法吗?有没有一种现有的方法可以实现这一点? –

+1

是的,向原型方法添加一个方法是这样做的唯一方法(如果你不想写'$(mystring).apply(decodeURIComponent)')之类的东西,那就是[你真的不应该这样做做(http://stackoverflow.com/q/14034180/1048572)。 – Bergi

回答

0

你应该看到this看看如何应用的作品。你可以这样做:

var mystring = "http%3A%2F%2Fstackoverflow.com%2F"; 

var mydecodedstring = decodeURIComponent.apply(null, mystring); 

显然,申请不会提供你在找什么。

您可以在字符串原型上定义自己的函数来解码或仅在您的对象上定义它。

0

也许你想向String对象添加一个新的方法?

String.prototype.apply= function(entry){ 
    return decodeURIComponent(entry); 
    } 
    var mystring = "http%3A%2F%2Fstackoverflow.com%2F"; 

    var mydecodedstring = mystring.apply(decodeURIComponent);