<script> /****************** *demo1:自定义一个对象 ****************** ******************/ //定义一个对象 function myoop(){ //注:1.系统会偷偷的替咱们做var this = new Object(); this.name = 'zrp'; this.age = 20; this.showName = function(){ alert('我叫'+this.name); } this.showAge = function(){ alert('我今年'+this.age); } //注:2.也会偷偷地帮我们:return this; } //实例化对象 var obj = new myoop(); //调用对象中的成员属性 alert(obj.name); //调用对象中的成员方法 obj.showName(); /****************** *demo2:给一个已有的数组加方法 ****************** ******************/ var arr1 = new Array(1,2,3,4,5); var arr2 = new Array(3,6,9); //自定义一个js数组求和的方法(类比css中的行间样式style='……') arr1.sum = function(){ var count = this.length; var sum = 0; for(var i=0;i<count;i++){ sum+=this[i]; } return sum; } alert(arr1.sum()); //问题?:如果我要同时让所有数组都有sum()求和的方法怎么办呢? //答:这时候就要用到js的原型了(类比css中的class,是全局的) Array.prototype.sum = function(){ var count = this.length; var sum = 0; for(var i=0;i<count;i++){ sum+=this[i]; } return sum; } alert(arr1.sum()+'/'+arr2.sum()); /****************** *demo3:总结(js面向对象编程) ****************** ******************/ //用下面的构造函数加属性 function CreatePerson(name,age){ //定义属性,类似于php中的构造函数 this.name = name; this.age = age; } //用下面的原型加方法 CreatePerson.prototype.showName = function(){ alert('我叫'+this.name); } CreatePerson.prototype.showAge = function(){ alert('我今年'+this.age); } var obj1 = new CreatePerson('zrp',23); var obj2 = new CreatePerson('ww',30); obj1.showName(); obj2.showName(); </script>