1 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
看公有的第一層意思是可以被大家所訪問的,對外開放的屬性,是相對于私有屬性而言的:
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
我們在這里定義了一個(gè)叫josh的Person對象,讓我們通過new方法再創(chuàng)建2個(gè)其他Person對象
var Eric=new Person('Eric','25');
var mongo=new Person('mongo','23');
console.log(Eric.name); //Eric
console.log(mongo.name); //monge
這里我們每次new一個(gè)對象的時(shí)候,Person中所有的代碼都會復(fù)制一份,便造成了內(nèi)存的浪費(fèi),可以通過定義同一類對象共有的方法來解決這個(gè)問題,因此在這里需要prototype關(guān)鍵字來我們。
從字面上來看,prototype可以理解為"property to type",即類型的屬性,對于一類的屬性,拿上面定義的Person來說,即對Person這一類對象共有的方法或?qū)傩?,我們改造一下上面的代碼
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 關(guān)注
- 220 瀏覽
添加回答
舉報(bào)