方式一 严谨的oop
var Rectangle = function(width, height){//必须要指定长、宽
this.width = width;
this.height = height;
};
Rectangle.prototype.area = function(){
return this.width * this.height;
};
Rectangle.prototype.girth = function(){
return (this.width + this.height) * 2;
};
//调用方式
var rect = new Rectangle(2, 4);
rect.area();
rect.girth();
方式二
var rectangle = {
create : function(width,height){
this.width = width;
this.height = height;
},
area : function(){
return this.width * this.height;
},
girth : function(){
return (this.width + this.height) * 2;
}
};
//调用方式
rectangle.create(2, 4);
rectangle.area();
rectangle.girth();
区别原型对象和当前对象 ,记住一个关键点,一个对象的原型对象是在上一级的
var Class_me = function(){};//既可以看作是对象,也可以看做是一个类(new关键字的时候)
Class_me.prototype.aa=function(){alert(23)};//看成是类,这里定义其子类的原型对象
var object = new Class_me();//把Class_me看作是一个类
object.aa();//object对象调用aa方法,如果object对象自身有这个方法,就会调用自身的方法,如果没有这个方法,那么就回去调用它对应的原型对象的这个方法,如果两个对象都没有这个方法,那么就会报undefined
Class_me.aa();//这个时候Class_me是一个对象,这个对象去调用aa方法,原理同上,这里回报undefined的,因为它本身没有定义aa方法,它对于的原型对象Object也没有aa方法,Class_me对象的原型对象应该在它的上一级,也就是new出这个对象的那个类所在的那一层
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。