如何在javascript中使用从字符串对象继承并实现自定义函数的原型

如何在javascript中使用从字符串对象继承并实现自定义函数的原型,javascript,prototype,Javascript,Prototype,我的职责如下: function revStr(s) { ns = ''; for (i = s.length - 1; i >= 0; i--) ns += s[i]; alert(ns); } 我被要求使用我在Javascript中完全不知道的原型来实现它(我是phpdeveloper:() 我必须创建一个从字符串对象继承的对象。我想我们可以这样做 var MyString= new string(); 然后使用javascript中名为Proto

我的职责如下:

function revStr(s) {
    ns = '';

    for (i = s.length - 1; i >= 0; i--)
    ns += s[i];
    alert(ns);
}
我被要求使用我在Javascript中完全不知道的原型来实现它(我是phpdeveloper:()

我必须创建一个从字符串对象继承的对象。我想我们可以这样做

var MyString= new string();
然后使用javascript中名为
Prototype
的东西实现我的函数
revStr

有人能帮我吗

谢谢

// add string object a new prototype
    // property method revStr
    String.prototype.revStr = function () {
        var ns = '';
        for (var i = this.length - 1; i >= 0; i--) {
            ns += this[i];
        };

        return ns
    };
    // use it like this
    console.log("String".revStr());
我必须创建一个从字符串对象继承的对象 …使用javascript中名为原型的东西实现我的函数revStr

这很简单。只需更改为String.prototype

所有字符串实例都继承自String.prototype。可用于字符串原型对象的函数可用于所有字符串实例

String.prototype.revStr = function(s){
    ns = '';

    for (i = s.length - 1; i >= 0; i--)
    ns += s[i];
    alert(ns);
}
这样,如果您执行
var obj=new String()
,新创建的对象
obj
将典型地继承
revStr
方法,该方法定义在
String.prototype
上,调用
obj.revStr(“abcd”)
将返回
“dcba”

当涉及到继承时,JavaScript只有一个构造:对象。每个对象都有一个到另一个对象的内部链接,称为其原型。当尝试访问对象的属性时,不仅会在对象上搜索该属性,还会在对象的原型、原型的原型上搜索该属性,依此类推,直到其中一个属性找到匹配名称或到达原型链的末端


您可以从

中了解有关原型继承的更多信息,这意味着您希望将
revStr()
添加到
String.prototype
,因此基本上所有字符串都可以执行
revStr()

您可以通过以下方式实现字符串原型的功能:

String.prototype.revStr = function(){
    ns = '';
    for (i = this.length - 1; i >= 0; i--)
        ns += this[i];
    alert(ns);
}
因此,您可以在任何字符串上使用此函数,如下所示:

'hello world'.revStr();
'fooobarrrr'.revStr();

你能给我解释一下这个原型是如何工作的吗?它是什么?@taoprinjs,prototype of object拥有这个对象的可继承属性(在你的例子中是string)与类类似。默认情况下,“this”关键字引用该对象的实例。您可以向String.prototype添加一个新函数。所有String实例都将使用该方法。
'hello world'.revStr();
'fooobarrrr'.revStr();