function CreatePerson(name,qq){//构造函数
/* new构造函数的时候 系统会自动new一个Object对象,var this = new Object(); 最后再把这个new的this对象返回,return this; */
this.name=name;//属性name
this.qq=qq;//属性qq
this.showName=function(){
alert('个人名字叫:'+this.name);
}
this.showQQ=function(){
alert('个人QQ号是:'+this.qq);
}
}
var obj=new CreatePerson('user1','1234');
var obj2=new CreatePerson('user2','5678');
alert(obj.showName == obj2.showName);//false
/* 两个new生成对象的showName是不一样的 new的对象多了,内存占用过多性能就会受影响了 */
function CreatePerson(name,qq){//构造函数
this.name=name;//属性name
this.qq=qq;//属性qq
}
CreatePerson.propotype.showName=function(){
alert('个人名字叫:'+this.name);
}
CreatePerson.propotype.showQQ=function(){
alert('个人QQ号是:'+this.qq);
}
var obj=new CreatePerson('user1','1234');
var obj2=new CreatePerson('user2','5678');
alert(obj.showName == obj2.showName);//true
/* 此时两个obj的showName是相同的 */
面向对象编程:用构造函数加属性(变量),用原型加方法(函数)。
同样的放到原型中,不同的放到构造函数中。 由于name、qq是不肯定的,而显示的方法时相同的。javascript面向对象: 使用对象时, 只关注对象提供的功能, 不须要关注其内部的细节, 好比jQuerycss
css | javascript | |
---|---|---|
class | 一次给一组元素添加 | 原型 |
style | 一次给一个元素添加 | 给对象加的一个方法 |
原型至关于css中的class, 给一组元素添加, 能够继承共用java
var arr = new Array();
类 | 对象 |
---|---|
模子 | 产品(成品) |
Array() | arr |
能够 new Array() | 不能够 new arr() |
Array是一个模子, 不具有实际功能,不能 Array.push() | arr是一个产品,是拿来使用的,能够 arr.push() |
类有原型,能够 Array.prototype | 对象没有原型,不能 arr.prototype |