JavaScript中构造函数

**构造函数:**函数的另一种执行方法,执行后创建对象,并创建原型对象。

**原型链:**对象访问构造函数的指针。

**Function函数:**函数对象。

**Object函数:**所有创建对象的祖辈对象,也是由Function对象实现的。

构造函数的特性:

    1.构造函数声明时,语法与普通函数的完全一致,
    2.在函数体中this指针不同
    3.构造函数和普通函数相比,调用方式不同
    4. 构造函数一般用作创建一个类,遵循C#的编码规范,首字母大写。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
           debugger;
            function Fun(){
                 
            }
            Fun();//普通函数的条用方式
            var fun=new Fun() //构造函数的调用方法
        </script>
    </head>
    <body>
    </body>
</html>

效果:
在这里插入图片描述
检测Fun.prototype的类型:
在这里插入图片描述
查看fun:
在这里插入图片描述
多次测验:
1.this在其他语言中代表当前对象,在js中非常灵活
2.this 是跟当前函数的运行环境有关
3. 对于普通函数来说,在函数体中this代表调用当前函数的运行环境对象
4. 对于构造函数来说this 代表当前构造函数创建的对象
5.在全局环境中this代表全局环境(window对象)

构造函数:new Fun的执行过程:

1.创建一个空obj对象
2.空对象的原型链(proto)指向了函数对象prototype对象
3.修改函数的this指针为新创建的对象引用。
4.执行函数体(普通函数只执行第四步)
原型链:

原型链:
原型对象(prototype):是函数对象的一个内部属性,是一个简单的对象,用户可以访问、操作对象。

原型链(proto):每个对象都具备的不可访问的内部属性(指针)(chrom浏览器可以访问,但不可以操作),指针指向构造函数对应的原型对象。

原型链的特点:

 1.原型链的终点是Object对象的Prototype属性,该属性的__proto__为null,所有连接构成原型链

 2.对象可以调用原型链上的所有属性以及函数

原型链的作用:

1.使用原型链可以模拟类的功能。

2.使用原型链可以实现继承关系。

原型对象(prototype)的创建:

在预编译或执行匿名函数时,js引擎调用 new Function()创建函数对象,以及函数对象的prototype对象。  只有函数对象才有Prototype属性。

函数的本质就是一个变量:函数名为变量名,值为函数对象。

在预编译阶段,会加载两个构造函数

1.Object:特殊的函数,代表对象函数

2.Function:特殊的函数,函数对象()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值