在原型上声明一个新方法

时间:2016-03-19 16:59:32

标签: javascript prototype

我正在尝试为名为'shout'的字符串声明一个新方法。我希望它将所有字符串更改为所有大写字母的字符串,最后有5个感叹号。此代码有效,但仅适用于我在if语句中使用的特定字符串。

String.prototype.shout = function() {
    if('string' === 'string') {
         console.log('string!!!!!'.toUpperCase());
    }
} 

2 个答案:

答案 0 :(得分:1)

(强调我的)

  

我希望任何字符串更改为所有大写字母的字符串,并在末尾添加5个感叹号。

字符串在Javascript中是不可变的。你无法改变它们。你可以制作一个新的并返回它。

String.prototype.shout = function () {
    return this.toUpperCase() + '!!!!!';
};

console.log('hello'.shout());

答案 1 :(得分:0)

您需要在代码中引用'this'对象:

String.prototype.shout = function() {
    return this.toUpperCase() + '!!!!!';
} 

使用'this'将使其在呼叫时点(。)左侧的任何内容上工作

yourString.shout() // works on your string!

工作jsBIN:https://jsbin.com/jepayu/edit?js,console