互换的青春
看公有的第一层意思是可以被大家所访问的,对外开放的属性,是相对于私有属性而言的:function Person(name,age){this.name=name;this.age=age;this.getName=function(){return this.name;}this.getAge=function(){return this.age;}}var josh=new Person('josh','25')console.log(josh.name); //joshconsole.log(josh.getName()); //josh我们在这里定义了一个叫josh的Person对象,让我们通过new方法再创建2个其他Person对象var Eric=new Person('Eric','25');var mongo=new Person('mongo','23');console.log(Eric.name); //Ericconsole.log(mongo.name); //monge这里我们每次new一个对象的时候,Person中所有的代码都会复制一份,便造成了内存的浪费,可以通过定义同一类对象共有的方法来解决这个问题,因此在这里需要prototype关键字来我们。从字面上来看,prototype可以理解为"property to type",即类型的属性,对于一类的属性,拿上面定义的Person来说,即对Person这一类对象共有的方法或属性,我们改造一下上面的代码function Personwww.hnnedu.com(name,age){this.name=name;this.age=age;}Person.prototype.getName=function(){return this.name;}Person.prototype.getAge=function(){return this.age;}var josh=new Person('josh','25')var Eric=new Person('Eric','25');var mongo=new Person('mongo','23');console.log(josh.getName()); //joshconsole.log(Eric.name); //Ericconsole.log(mongo.name); //monge