JavaScript中的面向对象编程

本文介绍了JavaScript中的面向对象编程实现方式,包括三种创建对象的方法:使用function定义类、通过Object添加属性和方法、利用prototype扩展功能。同时探讨了公有与私有属性及方法的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++/C/Java面向对象的语言---面向对象编程有三个概念:封装、继承和多态
JavaScript不是面向对象的语言,不支持面向对象,无定义类关键字class,而是用function来定义一个类



1、创建对象的第一种方式
第一种:

//定义一个类,用的是function,而不是class
  function Class1(){
     //定义两个属性
     this.x=1; //公有成员
      var y=345; //私有成员
    
    //定义一个方法
    this.fangfa=function(){
      alert("x="+this.x);
      alert("y="+y);
    }
 
  }
  //实例化对象   分配内存空间
 var cl=new Class1();
 
 //访问对象属性的时候可以使用"[]",也可以使用“.”
 //alert(cl.x);
 ///alert(cl["x"]);
 
 
 //怎样访问对象方法?
   alert(cl.fangfa());
 -------------------------
 
 第二种: 使用object的方式想对象中添加属性和方法
  //通过 new object() 可得到空白对象,进行设值
  //var  obj=new Object();
 
   //定义空白类   自定义一个类
   function Test(){
     
   }
   var obj=new Test();
 
 
 
   //定义属性
   obj.name="顿雅男";
   obj.age="145";
     alert(obj.name);
   
   //定义方法
   obj.fangfa=function(){
      alert(this.age);
   }
   
   
   alert(obj.fangfa());
   
   ------------------------
  第三种: 使用prototype的方式想对象中添加属性和方法
     1)创建类,比如类名:Test
     2)用“类名.prototype"定义新的属性或者方法
     例如:
//定义一个空白的类
function Testpro(){};

//通过prototype向类中添加属性
Testpro.prototype.name="顿雅男";
//通过prototype向类中添加方法
Testpro.prototype.show=function(){
   alert(this.name);
}

//实例化
var tp=new Testpro();

alert(tp.name);

2、定义公有属性和私有属性
this.x=1;  this.  定义的是公有属性
var y=23;   var    定义的是私有属性


3、定义公有方法和私有方法

  this.  定义的是公有方法
  var    定义的是私有方法
 
4、虚拟构造函数
//自己虚拟一个构造方法
  function Test(a,b){
       var x;
       var y;
      //定义一个公有函数
     this.init=function(){
     x=a;
     y=b;
       alert("Test已经被初始化,执行虚拟构造函数");
       alert(a+"#####"+b);
    }
    //调用自身的init方法
    this.init();
    
    //用公有方法访问私有属性
    this.getx=function(){
      alert(x);  
    }
    this.gety=function(){
      alert(y);
    }
    
    
  }
  //实例化对象
  var obj=new Test(3,4);
   obj.getx(); //不用使用 alert
   obj.gety();
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值