欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

面向对象初步理解

程序员文章站 2022-06-30 14:46:47
oop:抽象,封装(只能通过对象来访问方法),继承(从已有对象),多态 oop组成:方法:对象下面的方法 arr.push()arr.sort() 属性:对象下面的变量 例子:var obj=new Object();//创建一个空对象 obj.name=‘小明’; obj.showNmae=fun ......

oop:抽象,封装(只能通过对象来访问方法),继承(从已有对象),多态

 
oop组成:方法:对象下面的方法  arr.push()arr.sort()
                属性:对象下面的变量
 
例子:var obj=new Object();//创建一个空对象
         obj.name=‘小明’;
         obj.showNmae=function(){
         alert(this.name);//关键:this的用法
        }
         obj.showName();
 
工厂方式:面向对象的封装函数
function createPerson(name){
 //1、原料
  var  obj=new Object();
//2、加工
  obj.name=name;
  obj.showName=function(){
      alert(this.name);
};
//3、出场
return obj;
var p1=createPerson(‘小明’);//创建出来的对象,相当于obj
p1.showName();//调用对象方法
 
重点:当new去调用一个函数,此时this就是函数创建出来的对象,而且函数的返回值直接就是this啦(隐式返回)
上式可改为:
 
function createPerson(name){
     this.name=name;
     this.showName=function(){
          alert(this.name);}
var p1=new CreatePerson(‘小强’);
p1.showName();
 
 
对象的引用
基本类型:赋值的时候只是值的复制
对象类型:赋值不仅是值的传递也是引用的传递
   var a=【1,2,3】;
   var b=a;
   b.push(4);
   alert(a);  //【1,2,3,4】
   alert(b);  //【1,2,3,4】
 
原型
改写对象下面公用的方法或属性,让公用的方法或者属性在内存中存在一份(提高性能)
  
//原型:css中的class
//普通方法:css中的style
原型:prototype,要写在构造函数下面
var arr=【1,2,3,4,5】;
Array.prototype.sum=function(){
    var result=0;
    for(var i=0;i<this.length;i++){
     ;  result +=this【i】;
 }
alert(arr.sum())
 
 
 
this  指向问题
事件或者定时器,尽量让面向对象中的this指向对象
 
prototype 属性使您有能力向对象添加属性和方法。