【发布时间】:2014-03-01 08:49:13
【问题描述】:
所以我写了这个字符串函数来为句子中的每个单词添加东西
String.prototype.addStuff = function() {
return this.replace(/ /g, "-stuff ") + "-stuff"
}
有人告诉我有一种方法可以在不使用括号的情况下对字符串调用此函数。 有人知道怎么做吗?
我尝试将函数声明用括号括起来并在末尾添加一对:
String.prototype.liu = (function() {
return this.replace(/ /g, "-liu ") + "-liu"
})();
但这不起作用:/
【问题讨论】:
-
你永远不会用括号括起来。你会在外部调用你的函数。
-
如果你“被告知”,那你为什么不问问……被告知的那个人? (我唯一能想到的是一个
toString方法,当字符串输出到某处时会自动调用它。) -
在解析为函数的表达式(例如变量名或函数表达式)之后的括号中包含形式参数列表会导致函数被调用。没有getters 和setters,没有其他方法,它们通常不可用。见ECMA-262 §11.2.3 Function Calls。
-
查看Invoking a function without parentheses 了解很多方法。
标签: javascript function prototype