什么是js的面向对象,以及它的特点和怎样写构造函数
2016-10-20 20:30
441 查看
首先呢,我们先来了解一下,什么是对象。可能有学过编程的知道这个概念。简单的说就是对象的概念是:我们不需要它的内部构造,只要会用即可。
就比如,举个很简单的例子。手机,手机是和我们现在有着密切关系的东西,几乎每个人都在使用,但是你知道手机是怎么做出来的吗?手机又为什么可以打电话呢?至于这些,我们可以知道,也可以不知道。但是我们只要会用就行了对吧。
这是日常生活中的例子。再举个例子比如在js中我们输入:
在这个对象里,为什么能获取到时间呢?这个我们就不用去管,只要会用就好。这其实是有人在系统中已经写好的,有很多的方法给你用。
对象是一个整体,对外提供一些操作。不同的方法有不同的功能。
那再来看面向对象是什么。面向对象就是说在使用对象时,只关注对象提供的功能,不关注其内部细节。就比如JQuery。
其实面向对象是一种通用是思想,并不是只有编程中能用,任何事情都可以用。
再说面向对象编程(OOP)的特点:
1、抽象
抽象的重点在于‘抽’ ,抽的意思就是说抓住核心的东西。最核心的 信息。
2、封装
这里说的封装和函数的封装很相似。这里所说的封装的含义是说别人写好的。以后用的时候不用考虑他内部实现,重点会使用就行。
3、继承
继承就是遗传的意思。就是继承父类的功能,并且还拥有自己的功能。
那么怎样写构造函数呢
构造函数(constructor)是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。构造函数的功能主要用于在类的对象创建时定义初始化的状态。这是教科书上的解释,可能有的还不太能理解。那么我们就通过几个实例对构造函数做进一步的了解。
现在只是有两个对象,那如果有多个 。。100 ,1000,难道还一个一个写吗。所以要改。那怎么改,怎么用?其实呢,这和封装函数是一个意思。你要充分利用,所以就要构造成一个大家都能用的。比如
代码中的函数user,也是平时所说的函数,那为什么叫构造函数呢?其实啊我们普通的函数和我们今天所写的函数都叫函数,但是为什么我们这个函数就叫构造函数。因为这个函数有个特别的功能,他是拿来构造对象的,他的职责是构造对象的。所以简单的说构造函数就是构造对象的函数。有没有觉得这个更好理解点。
就比如,举个很简单的例子。手机,手机是和我们现在有着密切关系的东西,几乎每个人都在使用,但是你知道手机是怎么做出来的吗?手机又为什么可以打电话呢?至于这些,我们可以知道,也可以不知道。但是我们只要会用就行了对吧。
这是日常生活中的例子。再举个例子比如在js中我们输入:
var date=new Date();//返还当日的日期和时间; alert(date);
在这个对象里,为什么能获取到时间呢?这个我们就不用去管,只要会用就好。这其实是有人在系统中已经写好的,有很多的方法给你用。
对象是一个整体,对外提供一些操作。不同的方法有不同的功能。
那再来看面向对象是什么。面向对象就是说在使用对象时,只关注对象提供的功能,不关注其内部细节。就比如JQuery。
其实面向对象是一种通用是思想,并不是只有编程中能用,任何事情都可以用。
再说面向对象编程(OOP)的特点:
1、抽象
抽象的重点在于‘抽’ ,抽的意思就是说抓住核心的东西。最核心的 信息。
2、封装
这里说的封装和函数的封装很相似。这里所说的封装的含义是说别人写好的。以后用的时候不用考虑他内部实现,重点会使用就行。
3、继承
继承就是遗传的意思。就是继承父类的功能,并且还拥有自己的功能。
那么怎样写构造函数呢
构造函数(constructor)是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。构造函数的功能主要用于在类的对象创建时定义初始化的状态。这是教科书上的解释,可能有的还不太能理解。那么我们就通过几个实例对构造函数做进一步的了解。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var obj=new Object(); //比如就拿用户名,密码比较 obj.name='天真';//属性 obj.Password='123456'; obj.showname=function(){//方法 alert(obj.name); } obj.showPassword=function(){ alert(obj.Password); } obj.showname();//弹出obj中用户名的值 obj.showPassword();//弹出obj中密码的值 //现在是只有一个对象的情况。那如果有两个对象呢用同样的方法 var obj1=new Object(); obj1.name='小哥';//属性 obj1.Password='645321'; obj1.showname=function(){//方法 alert(obj1.name); } obj1.showPassword=function(){ alert(obj1.Password); } obj1.showname();//弹出obj1中用户名的值 obj1.showPassword();//弹出obj1中密码的值 </script> </head> <body> </body> </html>
现在只是有两个对象,那如果有多个 。。100 ,1000,难道还一个一个写吗。所以要改。那怎么改,怎么用?其实呢,这和封装函数是一个意思。你要充分利用,所以就要构造成一个大家都能用的。比如
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> function user(name, Password) { //构造函数:构造对象的函数; var obj = new Object(); //还是先构造新的的对象 obj.name = name; //为了充分利用,就不能固定 obj.Password = Password; obj.showname = function() { 4000 //方法 alert(this.name); //现在在弹的话,就是弹出当前obj的名字 }; obj.showPassword = function() { alert(this.Password); // }; return obj; //这个最重要的记住要把obj给丢出去使用。 } var obj = user('天真', '123456'); //现在就要先传值进取,再调用 obj.showname(); obj.showPassword(); //如果还有对象的话,我们就可以直接用 var obj1 = user('无邪', '654321'); obj.showname(); obj.showPassword(); </script> </head> <body> </body> </html>
代码中的函数user,也是平时所说的函数,那为什么叫构造函数呢?其实啊我们普通的函数和我们今天所写的函数都叫函数,但是为什么我们这个函数就叫构造函数。因为这个函数有个特别的功能,他是拿来构造对象的,他的职责是构造对象的。所以简单的说构造函数就是构造对象的函数。有没有觉得这个更好理解点。
相关文章推荐
- 什么是js面向对象,特点,怎么写构造函数
- 黑马程序员_Java基础_面向对象(继承、子父类变量和函数以及构造函数特点、final关键字、抽象类、模版方法模式、接口)
- Seajs是什么及sea.js 由来,特点以及优势
- [置顶] 什么是js面向对象?有什么特点?
- 什么是js面向对象?有什么特点?
- 06-面向对象(构造函数-细节) 07-面向对象(this关键字-使用场景) 07-面向对象(this关键字-使用场景一&this的原理图解) 08-面向对象(this关键字-使用场景二以及细节)
- JS面向对象---构造函数之间的继承(阮一峰网络日志学习笔记)
- js怎样推断一个对象{}是否为空对象,没有不论什么属性
- 面向对象_final关键字修饰类,方法以及变量的特点
- 面向对象JS基础讲解,工厂模式、构造函数模式、原型模式、混合模式、动态原型模式
- 什么是堆什么是栈以及两者区别特点
- 面向对象(子父类中构造函数的特点-子类实例化过程)
- android90--什么是Service以及描述下它的生命周期。Service有哪些启动方法,有什么区别,怎样停用Service
- JavaScript中的函数有什么特点? 应该怎样优化?
- 作用域安全的构造函数以及js对象的创建步骤
- 怎样用JS 实现HTML的下拉菜单,以及下拉菜各参数的详细意义
- js与php对象数组的不同点分析以及怎样应用json数据
- JS 面向对象之继承 -- 借用构造函数
- 彻底理解JS原型以及构造函数
- 什么是堆什么是栈以及两者区别特点