调用没有括号javascript的函数

时间:2014-02-05 04:12:44

标签: javascript function prototype

所以我编写了这个String函数来为句子中的每个单词添加内容

String.prototype.addStuff = function() {
    return this.replace(/ /g, "-stuff ") + "-stuff"
}

我被告知有一种方法可以在字符串上调用此函数而不使用括号。 谁知道怎么做?

我尝试在括号中包装函数声明并在末尾添加一对:

String.prototype.liu = (function() {
    return this.replace(/ /g, "-liu ") + "-liu"
})();

但这不起作用:/

2 个答案:

答案 0 :(得分:6)

您可以使用Object.defineProperty并提供访问者描述符

Object.defineProperty(String.prototype, 'liu', {
    get: function() {
        return this.replace(/ /g, "-liu ") + "-liu"
    }
});

"foo".liu

虽然我不知道你为什么要那样做。

答案 1 :(得分:0)

您可能无法将整个function打包到prototype进行自动调用。

现在,可以做的,是在{/ 1}} 中定义共享的function

当然,你必须打电话给它,但根本没有回答。

Good Read on how prototypical inheritance works

现在,您可以执行:

prototype

但是你必须正确地格式化才能使其正常工作。