既然前一视频中的trim()方法是用来操作字符串的方法,可不可以像字符串已有的方法一样,
将该方法也定义到字符串对象中呢?直接用字符串对象调用就可以。
【String对象的propotype属性】
1.描述:返回对象类型原型的引用。
(【解释】虎的原型是猫,那么如果给猫添加一个功能,虎也应该具备,即虎.prototype.上树 = function(){},此时虎.prototype
指向虎的原型——猫,所以虎具备上述功能,猫也具备)
2.语法:objectname.prototype
objectname 参数是对象的名称。
3.说明:用 prototype 属性提供对象的类的一组基本功能。对象的新实例“继承”赋予该对象原型的操作。
(通俗的讲,原型就是该对象的一个描述,该描述中如果添加了新功能,那么
该对象都会具备这些新功能。prototype就可以获取到这个原型对象,
通过prototype就可以对对象的功能进行扩展。)
<html>
<head>
</head>
<body>
<script type="text/javascript">
//给String的原型中添加一个功能。【注意】prototype的用法
String.prototype.len = 199;//给String的原型对象中添加一个属性,名为len,值为199
//此时随便写一个字符串对象,都具备len=199的属性。
document.write("haha".len);//输出199
================================================
//添加行为(用String对象的prototype属性,其中用this指向当前调用该方法的对象。)
String.prototype.trim = function(){
var start,end;
start = 0;
end = this.length-1;
while(start<=end && this.charAt(start)==' '){
start++;
}
while(strat<=end && this.charAt(end)==" "){
end--;
}
return this.substring(start,end+1);
}
var str = " abc ";
alert("-"+str+"-");
alert("-"+str.trim()+"-");
</script>
</body>
</html>
【总结】JavaScript在String对象中提供了Prototype属性,用于扩展原String对象的功能。