js面向对象编程
<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>
时不我待,不负韶华!立刻行动!不吃学习的苦就会吃生活的苦!

浙公网安备 33010602011771号