如何在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();