javascript面向对象

javascript面向对象

一、什么是面向对象

  什么是对象:简单通俗的可以把它比喻为一个收音机,我们只需要用它提供的按钮(功能),而不需要知道它的实现原理。这就是对象。

  面向对象是一种思想,也可以从生活中去发现。我们只需要关注它提供的功能,而不关注内部细节。它也是一种通用的思想。

二、面向对象(oop)的特点

  1. 封装:只提供外部使用功能,不需要考虑内部实现。
  2. 继承:子类可以继承父类的所有属性,方法。
  3. 多态:子类可以继承多个父类的属性和方法,并且可以有自己的特殊属性和方法。

  最关键:抽象,抓住核心问题。

  面向对象是解决一类问题,在考虑需求时,应该抓住核心问题,如:员工管理,只需要考虑员工的姓名,职位,薪资等,不用考虑与他无关的问题。

三、对象的组成

  属性(相当于变量)this.name='abc';

  方法(相当于函数)this.show=function(){alert( this.name )};

  方法内this的指向问题:this的函数属于谁,this就是谁

四、工厂方式创建对象

 1 function animal(name, age){
 2     //1.原料
 3     var obj=new Object();
 4 
 5     //2. 加工
 6     obj.name=name;
 7     obj.age=age;
 8     
 9     obj.showName=function(){
10         alert(this.name);
11     };
12     obj.showAge=function(){
13         alert(this.age);
14     };
15 
16     //3.出厂
17     return obj;
18 }

  缺点:var a1=animal('大象', 5);  var a2=animal('小猩猩', 1);   (a1.showName==a2.showName)   false

  1.每个对象都有自己的属性和方法=》资源浪费  2.没有new

五、原型(prototype)

  原型相当于css中的class,给一类对象添加方法。

  比如:给系统的String对象添加方法

1 String.prototype.trim=function(){
2     return this.replace(/^\s+|\s+$/g, '');
3 };
4 
5 var str='   fsdfsf  fsf fsd     fsdfsf      ';
6 str.trim();

  只要给String对象的原型添加了trim方法,str1,str2....strn都可以调用trim方法。而且重要的一点(str1.trim==str2.trim) true,方法都是共用,不浪费资源。

  这样我们就可以把工厂方式改变一下:

 1 function Animal(name, age){
 2     this.name=name;
 3     this.age=age;    
 4 }
 5 
 6 Animal.prototype.showName=function(){
 7     alert(this.name);
 8 };
 9 
10 Animal.prototype.showAge=function(){
11     alert(this.age);
12 };
13 
14 var a1=new Animal('大象', 5);
15 var a2=new Animal('金刚', 100);
16 
17 alert(a1.showName==a2.showName);    true

 

转载于:https://www.cnblogs.com/lostyu/p/3644391.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值