面向对象---基础概念

什么是对象----所谓对象,就是一个具有简单功能的事物,例如:汽车,电脑,手机,水杯,他们都会提供一定的功能,自己本身是一个整体,把功能集成在自己身上。

百度百科的关于对象的定义----具有属性和方法的类实例(感觉蛮抽象的,其实在现实生活中就是具体的事物,在程序设计里面把他抽象出来)。

面向对象----Object Oriented 面向对象这个概念用处很广泛,在学数据库的时候看到过面向对象的概念,学VB的时候同样遇到过,当然现在JS同样遇到了。刚开始一听面向对象会感觉很抽象,其实简单来说就是一点,把面向对象看作是生活中的一个提供某一种功能的事物,在JS里那就是具体的封装函数,这样一个封装函数可以提供一些功能,类似于JQuery这样的库,他就可以提供很多种功能,作为前端开发的人员,虽然说没有必要知道他的具体代码,只要会使用他提供的功能就可以了,但是如果自己知道那些技术大牛是怎么写的库,写代码的思维,那就高人一筹了。

面向对象的特征

  1. 抽象----抓住核心问题。例如今天的六级考试,把一个人抽象成姓名,准考证号来代表一个人具体的人。
  2. 封装----封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。简单来说就是封闭函数,在外面调用函数。
  3. 继承----单继承(一个子类有多个父类)和多重继承(一个子类有多个父类)-----其实继承和CSS有类似点。
  4. 多态----同一消息为不同的对象接受时可产生完全不同的行动。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。

对象的组成:

  • 方法---函数:动态
  • 变量---属性:静态
1 <script> 2 /*var arr=[1,2,3,4]; 3 var a=10; //现在的a是变量----自由的 4 arr.a=1; //现在的a是属性----属于某一个对象的 5 alert(arr.a);*/ 6 function paxster(){ 7 alert('bingo'); 8 } 9 paxster(); //函数 10 11 paxster=function(){ 12 alert('bingostyle'); 13 } 14 paxster(); //方法 15 </script>

 this属于谁,属于他的对象

1 <script> 2 var paxster=[1,2,3]; 3 paxster.show=function(){ 4 alert(this); //this----当前的方法属于谁? 5 } 6 paxster.show(); 7 </script>

window对象

1 function show(){ 2 alert(this); 3 } 4 show();
  1.  函数----自由的时候叫做函数
  2. 方法----当一个函数属于一个对象的时候叫做方法
  3. 构造函数----创建一个对象
  4. 事件处理函数----事件处理的时候

构造函数:其实很容易理解,使用一个函数封装功能,其他的数据就可以调用这个函数创建新的对象,不需要多次写同一个函数。

1 <script> 2 //用工厂方式构造对象 3 function createPerson(name, sex) //构造函数 4 { 5 //1.原料 6 var obj=new Object(); 7 //2.加工 8 obj.name=name; 9 obj.sex=sex; 10 obj.showName=function () 11 { 12 alert('我的名字叫:'+this.name); 13 }; 14 obj.showSex=function () 15 { 16 alert('我是'+this.sex+'的'); 17 }; 18 //3.出厂 19 return obj; 20 } 21 var p1=createPerson('paxster', 'boy'); 22 var p2=createPerson('boychik', 'girl'); 23 alert(p1.showName==p2.showName); 24 </script>

 工厂方式的问题:

  1. 没有new----new可以简化代码
  2. 资源浪费,调用同一个函数多次。(每写一次function函数创建一个新的对象

明天早上出门,暂时到这:)


__EOF__

本文作者Paxster
本文链接https://www.cnblogs.com/paxster/archive/2013/06/15/3138044.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Paxster  阅读(840)  评论(4编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示