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

How to use prototype in javascript thatinherit from string Object and implements custom function

本文关键字:对象 字符串 原型 自定义函数 实现 继承 javascript      更新时间:2023-09-26

我有一个函数,

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

有谁能帮我一下吗?

谢谢

这意味着您要将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();
// 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());
String.prototype.rev = function () {
    var s = this;
    ns = '';
    for (i = s.length - 1; i >= 0; i--)
        ns += s[i];
    alert(ns);
}

我必须创建一个从字符串对象继承的对象…实现我的函数revStr使用的东西叫做Prototype在javascript

这简单。只需修改String.prototype

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

String.prototype.revStr = function(s){
    ns = '';
    for (i = s.length - 1; i >= 0; i--)
    ns += s[i];
    alert(ns);
}

这样,如果执行var obj = new String(),新创建的对象obj将典型地继承String.prototype上定义的revStr方法,调用obj.revStr("abcd")将返回"dcba"

说到继承,JavaScript只有一个结构:对象。每个对象都有一个指向另一个对象的内部链接,称为其原型。当试图访问一个对象的属性时,该属性不仅会在对象上搜索,还会在对象的原型上搜索,原型的原型,以此类推,直到找到具有匹配名称的属性或到达原型链的末端

您可以从MDN文档

中了解更多关于原型继承的信息。