prototype可以类比类里面的动态方法,写个比较常用的例子:
var People = function(name){
this.name = name;
};
People.prototype = {
say:function(word){
alert(this.name+":"+word);
}
};
var xiaoming = new People("小明");
xiaoming.say("呵呵哒");
// 这里的xiaoming是实例化自People这个原型,prototype的方法可以被People的实例(xiaoming)调用。
// 也就是说prototype定义了一些可以被他实例过的对象调用的方法。
// 这是它最基本的用法,相当于C语言之类的里面的类定义的动态方法,可以被new出来的实例直接调用,而不能通过这个原型直接调用。
因为JavaScript是伪面向对象语言所以使用构造函数去模拟类,而如在PHP,JAVA这一类面向对象语言中可以使用类进行操作。在类中有一种操作叫做继承(extends),JS的prototype正是可以模拟继承这种概念而存在的。(现在在ECMAScript中js也有类的概念了具体题主可以去看一看)