对象是一个总体,对外提供一些操做编程
使用对象时,只关注对象提供的功能,不关注其内部细节;好比jQuery函数
arr=[1,2,3,4,5] //arr是一个对象 arr.length;//属性 arr.push(6);//方法
//变量跟属性本是同一个东西
//var a=12;//变量:自由
//arr.a = 5;//属性:属于一个对象
//函数 function show(){ } //方法:属于一个对象的 arr.fn=function(){ }
//针对array var arr=[12,23,45]; arr.show=function(){ //this:是当前的方法,属于谁 alert(this)//arr } //针对object var obj = new Object(); obj.aaa=12; obj.show=function(){ alert(this.aaa)//12 } obj.show();
//其实这个函数就是建立一个对象(用工厂方式构造对象) //用工厂方式构造对象 //好听点就是:构造函数 function create(name,sex){ var obj = new Object(); //属性 obj.name=name; obj.sex=sex; //方法 obj.showName=function(){ alert(this.name)//111 } obj.showSex=function(){ alert(this.sex)//男 } return obj; } var p1=create("111","男'); p1.showName(); p1.showSex();
//this:当前方法,属于谁; //可是函数前面有new的话,this就会失效; function create(name,sex){ //属性 //var this = newObject();//假想系统帮咱们处理了建立对象 this.name=name; this.sex=sex; //方法 this.showName=function(){ alert(this.name)//111 } this.showSex=function(){ alert(this.sex)//男 } //return this;//假想系统帮咱们处理了return } var p1=new create("111","男'); p1.showName(); p1.showSex(); //记住一句话里面有new,外面就不须要new;外面有new,里面就不须要new;
//首先区别一下类,对象(实例) var arr = new Array(); Array.prototype.sum=function(){ //在Arry这个类上均可以使用sum() } //arr对象:真正有功能的东西,是被类构造出来的 //Array类:不具有实际的功能,只能用来构造对象 //因此我理解的就是构造函数就是类,类就是构造函数---只针对js function Create(name,sex){ //属性 this.name=name; this.sex=sex; } //Create就是类,也是构造函数 Create.prototype.showName=function(){ alert(this.name)//111 } Create.prototype.showSex=function(){ alert(this.sex)//男 } //记住一句话相同的加在原型里,不一样加在构造函数里 var p1=new create("111","男'); p1.showName(); p1.showSex(); //混合模式