1 回答
TA贡献1797条经验 获得超6个赞
看公有的第一层意思是可以被大家所访问的,对外开放的属性,是相对于私有属性而言的:
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); //josh
console.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); //Eric
console.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()); //josh
console.log(Eric.name); //Eric
console.log(mongo.name); //monge
- 1 回答
- 0 关注
- 196 浏览
添加回答
举报