JavaScript中的prototype允许开发人员为任何对象添加属性和方法,使用如下:
object.prototype.name=value
例一:
function employee(name,jobtitle,born)
{
this.name=name;
this.jobtitle=jobtitle;
this.born=born;
}
var fred=new employee("Fred Flintstone","Caveman",1970);
employee.prototype.salary=null;
employee.prototype.printName=function(){document.write(fred.name)};
fred.salary=20000;
document.write(fred.salary);
fred.printName();
上面的代码为employee添加了一个属性salary和一个方法printName。
例二:
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
上面的代码为所有的String类型的对象都添加了一个trim方法,用于过滤字符串开头和结尾的空白字符。在需要过滤的地方可以按照如下方法调用:
var str = " test ";
str = str.trim();
总结:使用prototype可以对任意类进行扩展,增加属性和方法,尤其是对JavaScript中已有的对象的扩展。