有没有办法为单个变量扩展本机对象?

时间:2015-06-17 19:07:27

标签: javascript

我想获得下一个功能:

var newString = String;
newString.prototype.reverse = function () {
    return this.split("").reverse().join("")
}

var a = 'hello';
var b = newString('hello');
a.reverse();//reverse is not a function
b.reverse();//olleh

在添加函数之前尝试扩展.prototype并且不起作用,我甚至不知道它是否可行。

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

var newString = function(initialVal) {
    var val = new String(initialVal);
    val.reverse = function () {
        return this.split("").reverse().join("")
    };
    return val;
};

var a = 'hello';
var b = newString('hello');
a.reverse();//reverse is not a function
b.reverse();//olleh

答案 1 :(得分:0)

听起来你正在寻找:

String.prototype.reverse = function () {
    return this.split("").reverse().join("")
}

var a = 'hello';
alert(a.reverse());

请注意扩展内置对象,例如" String"充其量是备受争议的。