js面向对象编程

匿名 (未验证) 提交于 2019-12-03 00:22:01

转载至:js面向对象编程


var arr = []; arr.number = 10;  //对象下面的变量:叫做对象的属性  //alert( arr.number ); //alert( arr.length );  arr.test = function(){  //对象下面的函数 : 叫做对象的方法     alert(123); };  arr.test();//方法  arr.push();//方法 arr.sort();
var obj=new Object();//创建一个空的对象         obj.name='小明';  //属性         obj.showName=function(){   //方法         alert(this.name);//this指向obj  }  obj.showName();//小明
var obj1=new Object();//创建一个空的对象         obj1.name='小明';  //属性         obj1.showName=function(){   //方法         alert(this.name);//this指向obj  }  obj1.showName();//小明  var obj2=new Object();//创建一个空的对象         obj2.name='小灰';  //属性         obj2.showName=function(){   //方法         alert(this.name);//this指向obj  }  obj2.showName();//小灰

//工厂方式 : 封装函数  function createPerson(name){     var obj = new Object();     obj.name = name;     obj.showName = function(){         alert( this.name );     };      return obj;     }  var p1 = createPerson('小明'); p1.showName(); var p2 = createPerson('小强'); p2.showName();

//new 后面调用的函数叫构造函数         function CreatePerson(name){             this.name=name;             this.showName=function(){                 alert(this.name);             }         }         var p1=new CreatePerson('小明');//当new去调用一个函数时,函数中的this就是创建出来的对象而函数中的返回值就是this         p1.showName();         var p2=new CreatePerson('小强');         p2.showName();

function CreatePerson(name){          this.name = name;     this.showName = function(){         alert( this.name );     };      }  var p1 = new CreatePerson('小明'); //p1.showName(); var p2 = new CreatePerson('小强'); //p2.showName();  alert( p1.showName == p2.showName );  //false  它们的值相同,地址不同

var a = [1,2,3]; var b = [1,2,3];  alert( a == b );  //false  值相同,地址不同  var a = 5; var b = a; b += 3 alert(b); //8 alert(a); //5   基本类型 : 赋值的时候只是值的复制

var a = [1,2,3]; var b = a; b.push(4); alert(b);  //[1,2,3,4] alert(a);  //[1,2,3,4]   对象类型 : 赋值不仅是值的复制,而且也是引用的传递
var a = [1,2,3]; var b = a; b = [1,2,3,4]; alert(b); //[1,2,3,4] alert(a); //[1,2,3]

var arr = [1,2,3,4,5]; var arr2 = [2,2,2,2,2];  Array.prototype.sum = function(){//原型prototype : 要写在构造函数的下面     var result = 0;     for(var i=0;i<this.length;i++){         result += this[i];     }     return result; };  alert( arr.sum() );  //15 alert( arr2.sum() );  //10

更多请看:js面向对象编程

文章来源: js面向对象编程
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!