ProtoType学习
1.采用protoType之前
<html>
<body>
<script>
function MyObject(name,age){
this.age=age;
this.name=name;
}
MyObject.tellName=function(){
alert("name"+this.name);
}
MyObject.tellAge=function(){
alert("age"+this.age);
}
var o=new MyObject("VerRan","23");
</script>
<input type="button" οnclick="o.tellName()" value="TellName"><br>
<input type="button" οnclick="o.tellAge()" value="TellAge">
</body>
</html>
上面的方法是写在构造方法之外的!
报错:o不为对象或者为空!
2. <html>
<body>
<script>
function MyObject(name,age){
this.age=age;
this.name=name;
this.tellName=function(){
alert("name"+this.name);
}
this.tellAge=function(){
alert("age"+this.age);
}
}
<o:p> </o:p>
var o=new MyObject("VerRan","23");
</script>
<input type="button" οnclick="o.tellName()" value="TellName"><br>
<input type="button" οnclick="o.tellAge()" value="TellAge">
</body>
</html>
<o:p> </o:p>
上面的方法是写在构造方法里面的,这样在每次建立对象时候每次都要进行加载的.这对内存是很大的浪费,比如某一个对象只需要其中的一个方法还要将所有的方法进行加载,这样是很不好的!所以protoType就出现了!
3. 改造1
<html>
<body>
<script>
function MyObject(name,age){
this.age=age;
this.name=name;
}
MyObject.prototype.tellName=function(){
alert("name"+this.name);
}
MyObject.prototype.tellAge=function(){
alert("age"+this.age);
}
var o=new MyObject("VerRan","23");
</script>
<input type="button" οnclick="o.tellName()" value="TellName"><br>
<input type="button" οnclick="o.tellAge()" value="TellAge">
</body>
</html>
成功!!