<script> | |
function createPerson(name, qq) //构造函数 | |
{ | |
//原料 | |
var obj=new Object(); | |
//加工 | |
obj.name=name; | |
obj.qq=qq; | |
obj.showName=function () | |
{ | |
alert('我的名字叫:'+this.name); | |
}; | |
obj.showQQ=function () | |
{ | |
alert('我的QQ号:'+this.qq); | |
}; | |
//出厂 | |
return obj; | |
} | |
var obj=createPerson('blue', '258248832'); | |
var obj2=createPerson('张三', '45648979879'); | |
alert(obj.showName==obj2.showName); //false | |
</script> |
1.没有new
调用函数时,在其前加new,那么this不是指向window,而是指向一个新创建出来的对象。
//系统会悄悄替咱们做:
//var this=new.object();
............
//return this;
2.解决函数重复
需要用到prototype(原型)
CSS JS
class:一次给一组元素加样式 >>>>>>>>>>>>>>>>>原型>>>>>>>>
行间样式:一次给一个元素加样式>>>>>>>>>>>>>>>给对象加东西
类:相当于模子
对象:相当于产品(成品) eg:var arr=Array(1,2,3); //arr:对象。Array:类。
用构造函数加属性,用原型加方法,如下:
function CreatePerson(name,qq){ //构造函数
//var obj=new Object();//原料
//加工
this.name=name;
this.qq=qq;
//出厂
//return obj;
}
CreatePerson.prototype.showName=function(){ //原型
alert('我的名字是:'+this.name);
};
CreatePerson.prototype.showQQ=function(){
alert('我的QQ号是:'+this.qq);
};
总结:
1.原型是class,修改他可以影响一类元素。
2.在已有对象中加入自己的属性。
3.原型修改对已有对象的影响。
4.给对象添加方法,类似于行间样式。
5.给原型添加方法,类似于class。
6.类名首字母大写。
7.不能在系统对象中随意附加方法、属性,否则会覆盖已有方法、属性,因此引入了object对象(白纸)。