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.命名方式:构造函数首字母需要大写;普通函数不需要


版权声明:本文为hui_3_6原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。