关于javascript面向对象的编程和构造器的简单创建

本文介绍了使用JavaScript创建对象的方法,包括直接字面量形式、构造函数方式以及原型继承等。探讨了对象属性的添加、访问及作用域问题,并通过实例展示了如何利用构造函数和原型链实现对象复用。

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

详细说明在代码注释中有第一种方式为向对象添加属性:

<script type="text/javascript">
 //创建无类型的对象,数据方式为json,属于捆绑方式,一旦完成,不能随意修改
 var car={
  luntai:"米其林",
  fangxpan:"volvo",
  boli:"fuyao",
  speed:function(){
   //alert("speed well");
   alert(this.luntai);
  }
 };
 //alert(car.luntai);
 car.speed();//输出米其林,this指向当前对象
 //对于属性由对象直接调用,方法由对象.方法()调用
 //alert(this.luntai);
 /**上一句显示undefine原因是没有定义,也就是没有找到相应的this
 this指的是当前对象,这里指的应该是window本身
 */
 //alert(this);//显示object window,window对象
 //通过该方式对同样类型的对象进行封装,可以提高效率
 

 </script>

<script type="text/javascript">
 function mycar(){}//属于一个空构造器
 mycar.prototype.luntai="米其林";
 mycar.prototype.name="volvo";
 mycar.prototype.showspeed=function(){
  alert(this.luntai);
 }
 //每一个对象都有一个prototype子对象
 var car=new mycar();//第一类车
 alert(car.price);
 //car.showspeed();
 //如果需要添加车的特殊属性,那么
 mycar.prototype.price="1000";
 var car2=new mycar();//第二类车
 alert(car2.price);
 //通过这样的方式可以先将相同属性封装在一起,
 //在讲特殊属性单独列出,这样有利于提高代码的效率
 </script>


 

<script type="text/javascript">
 function mycar(name,luntai,speed){
  this.name=name;
  this.luntai=luntai;
  this.speed=speed;
 }//这是一个构造器
 var car=new mycar();
 //alert(car.name);
 //这里可以显示出volvo也就是说可以将该属性作为参数被外界调用
 //这样还可以避免全局变量的大量定义,当然也可以定义有参构造器
 //同样对于那些不需要进行变更的属性可以进行一下操作
 mycar.prototype.type="小车";
 mycar.prototype.showmessage=function(){
  alert(car.name+":"+car.speed);
 }
 var car=new mycar("byd","米其林","200km/h");
 //car.showmessage();
 //在这里prototype所添加的属性存在一个内存地址中,也就是说要获取
 //type或者showmessage方法都是一样的
 var car1=new mycar("bwm","米其林","250km/h");
 alert(car.type==car1.type);//结果显示为true
 //构造器中德熟悉为每一个对象私有属性,而prototype为构造器的公共属性

 </script>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值