JavaScript 构造函数与普通函数的区别

 

一、普通函数示例

    // 普通函数在声明函数位置前和位置后都可以对函数进行调用
    console.log(person(3,3))
    function person(a,b){
        return a+b;
    }
    console.log(person(1,3))

二、函数表达式示例

    /*
        函数表达式只能在声明函数位置后进行调用;如果在定义的函数表达式之前进行调用,
        则会报调用的不是函数的错误。错误示例如上图:
    */
    // console.log(add(3, 5))//在此调用会抛出一个错误
    var add = function (a, b) {
        return a + b;
    }
    console.log(add(3, 5))

三、工厂模式示例

    function person(a, b) {
        var obj = new Object();
        obj.a = a;
        obj.b = b;
        obj.todoa = function () {
            return obj.a;
        };
        obj.todob = function () {
            return obj.b;
        };
        return obj;
    }
    var a1 = person('999', 8888)
    console.log(a1)
    console.log(person('987', 654))

四、构造函数示例

    function Person(a, b) {
        var obj = new Object();
        obj.a = a;
        obj.b = b;
        obj.a1= function () {
            return obj.a;
        };
        obj.b1 = function () {
            return obj.b;
        };
        return obj;
    }
    var a1 = Person('999',8888)
    console.log(a1)
    console.log(Person('987',654))

总结:

1.this指向:构造函数的this指向创建的对象实例;普通函数指向函数的调用者 

2.调用方式:构造函数通过new进行调用;普通函数则不需要

3.命名方式:构造函数首字母需要大写;普通函数不需要

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白羊蝎子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值