您的位置:首页 > Web前端 > JavaScript

什么是js的面向对象,以及它的特点和怎样写构造函数

2016-10-20 20:30 441 查看
首先呢,我们先来了解一下,什么是对象。可能有学过编程的知道这个概念。简单的说就是对象的概念是:我们不需要它的内部构造,只要会用即可。

就比如,举个很简单的例子。手机,手机是和我们现在有着密切关系的东西,几乎每个人都在使用,但是你知道手机是怎么做出来的吗?手机又为什么可以打电话呢?至于这些,我们可以知道,也可以不知道。但是我们只要会用就行了对吧。

这是日常生活中的例子。再举个例子比如在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,也是平时所说的函数,那为什么叫构造函数呢?其实啊我们普通的函数和我们今天所写的函数都叫函数,但是为什么我们这个函数就叫构造函数。因为这个函数有个特别的功能,他是拿来构造对象的,他的职责是构造对象的。所以简单的说构造函数就是构造对象的函数。有没有觉得这个更好理解点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面向对象 对象 函数
相关文章推荐