干嘛用的
prototype属性用来给对象添加属性和方法的。
如下给Person这个对象添加了salary属性。
<script>
function Person(name,age){
this.name=name;
this.age=age;
}
var xiaoming=new Person("xiaoming",45)
Person.prototype.sallary=null;
xiaoming.salary=4000;
alert(xiaoming.salary)//4000
</script>
为何如此大费周折?
上述代码不要Person.prototype.sallary=null;也可以,所以为啥呢?
看看下面这个例子
function Person(name,age){
this.name=name;
this.age=age;
this.hobby=function(){
return "watching movies"
}
}
var xiaoming=new Person("xiaoming",45);
var xiaohong=new Person("xiaohong",34);
alert(xiaoming.name);
alert(xiaohong.name)
alert(xiaohong.hobby===xiaoming.hobby);//false
小明的方法竟然和小红的方法不一样。(哪里不一样?)
function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.hobby=function(){
return "watching movie"
}
var xiaoming=new Person("xiaoming",45);
var xiaohong=new Person("xiaohong",34);
alert(xiaoming.name);
alert(xiaohong.name)
alert(xiaohong.hobby===xiaoming.hobby);//true
通过prototype来进行创建就一样了。