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

首先呢,我们先来了解一下,什么是对象。可能有学过编程的知道这个概念。简单的说就是对象的概念是:我们不需要它的内部构造,只要会用即可。
就比如,举个很简单的例子。手机,手机是和我们现在有着密切关系的东西,几乎每个人都在使用,但是你知道手机是怎么做出来的吗?手机又为什么可以打电话呢?至于这些,我们可以知道,也可以不知道。但是我们只要会用就行了对吧。
这是日常生活中的例子。再举个例子比如在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() { //方法
                    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,也是平时所说的函数,那为什么叫构造函数呢?其实啊我们普通的函数和我们今天所写的函数都叫函数,但是为什么我们这个函数就叫构造函数。因为这个函数有个特别的功能,他是拿来构造对象的,他的职责是构造对象的。所以简单的说构造函数就是构造对象的函数。有没有觉得这个更好理解点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值