Javascript 如何使用prototype访问字符串

Javascript 如何使用prototype访问字符串,javascript,prototype,Javascript,Prototype,我正在尝试编写一个返回字符串中间字符的函数。我希望它能像下面的代码一样工作: "123456789".midChar(); // Returns 5 "hello".midChar(); // returns 1 "test".midChar(); // returns e 我想知道如果函数不带参数,如何访问字符串? 如何引用函数内部的字符串来操作它?例如“123456789” 在问这个问题之前我做了什么 我阅读了关于原型的文章,了解了如何向数组和字符串原型添加方法。我试图找到String.p

我正在尝试编写一个返回字符串中间字符的函数。我希望它能像下面的代码一样工作:

"123456789".midChar(); // Returns 5
"hello".midChar(); // returns 1
"test".midChar(); // returns e
我想知道如果函数不带参数,如何访问字符串? 如何引用函数内部的字符串来操作它?例如“123456789”

在问这个问题之前我做了什么


我阅读了关于原型的文章,了解了如何向数组和字符串原型添加方法。我试图找到
String.prototype.charAt()
的实现以及其他几个实现,以了解它是如何构建的,但没有找到。我所能找到的只是Reduce、ForEach和其他几种数组方法,但这对我的案例没有多大帮助。

像这样扩展原型

String.prototype.midChar= function () {
    //put yout function body here..
    //i.e.
    //var firstchar = this.charAt(0)
};

那就够了

像这样扩展原型

String.prototype.midChar= function () {
    //put yout function body here..
    //i.e.
    //var firstchar = this.charAt(0)
};
那就够了

String.prototype.midChar=函数(){
log(字符串(this));/“this”是字符串表示形式。
console.log(这个子字符串(5));
console.log(this);
};
“EleFromStack”.midChar()
.as控制台包装{最大高度:100%!重要;顶部:0;}
String.prototype.midChar=函数(){
log(字符串(this));/“this”是字符串表示形式。
console.log(这个子字符串(5));
console.log(this);
};
“EleFromStack”.midChar()

作为控制台包装{max height:100%!important;top:0;}
在midChar函数中使用
访问字符串

String.prototype.midChar=function(){
var mid=parseInt((this.length-1)/2)
返回此.substring(mid,mid+1);
}
log(“123456789.midChar())
console.log(“hello.midChar())

console.log(“test.midChar())
使用midChar函数中的
来访问字符串

String.prototype.midChar=function(){
var mid=parseInt((this.length-1)/2)
返回此.substring(mid,mid+1);
}
log(“123456789.midChar())
console.log(“hello.midChar())

console.log(“test.midChar())
在原型中,字符串将被设置为上下文,因此您可以通过
访问它。为什么它必须是字符串上的方法,而不是将字符串作为参数的普通函数?出于教育目的,我想深入了解原型的工作原理,因此,我尝试构建这个。在原型中,字符串将被设置为上下文,因此您可以通过
访问它。为什么它必须是字符串上的一个方法,而不是将字符串作为参数的普通函数?只是出于教育目的,我想知道原型如何深入工作,所以我尝试构建它。是的,那不是我的问题。我的问题是如何访问函数中的字符串是的,这不是我的问题。我的问题是如何访问此函数中的字符串是否有原因返回“this.substring(mid,mid+1)”而不是执行“return this[mid];”?是否有原因返回“this.substring(mid,mid+1)”而不是执行“return this[mid];”?