美文网首页
三种方式创建函数及构造函数与普通函数之间的区别

三种方式创建函数及构造函数与普通函数之间的区别

作者: komallqh | 来源:发表于2020-07-21 23:00 被阅读0次

    创建函数的三种方式:函数声明,函数表达式,函数对象

    • 函数声明
    function sum1(num1,num2){
       return num1+num2;
    }
    sum1(10,20);
    
    • 函数表达式
    var sum2 = function(num1,num2){
       return num1+num2;
    }
    sum(10,20);
    
    • 函数对象形式
     var sum3 = new Function("num1","num2","return num1+num2");
     
        //var 函数名 = new Function(“参数...”,”函数体”);
        var sum = new Function("num1,num2","return num1+num2");
        var result1 = sum(120,130);
        alert(result1)
    

    构造函数和普通函数的区别

    • 定义方式:构造函数首字母通常大写
    • 调用方式:构造函数调用方法为:new Person()
      普通函数调用方法为:person()
    • 作用:构造函数用来新建实例对象
    • 构造函数的函数名与类名相同:Person( ) 这个构造函数,Person 既是函数名,也是这个对象的类名
    • 构造函数内部用this 来构造属性和方法
    function Person(name,job,age)
    {
        this.name=name;
        this.job=job;
        this.age=age;
        this.sayHi=function()
            {
             alert("Hi")
            }
    }
    
    • 构造函数的执行流程
      在堆内存中创建一个新的对象
      将this指向这个新建的对象
      执行函数中的代码
      将新建对象作为返回值
    • 构造函数默认将新建对象返回,普通函数如果没定义返回值,则返回undefined
    • 用instanceof 可以检查一个对象是否是一个类的实例,是则返回true;所有对象都是Object对象的后代,所以任何对象和Object做instanceof都会返回true
    function Person(name, age, gender){
       this.name = name;
       this.age = age;
    }          
    var per = new Person("komal",20);
    console.log(per);  //Person
    console.log(per instanceof Person)     //true
    

    参考博文:
    https://blog.csdn.net/JinPingQ/article/details/84335179
    https://blog.csdn.net/weixin_41796631/article/details/82939585

    相关文章

      网友评论

          本文标题:三种方式创建函数及构造函数与普通函数之间的区别

          本文链接:https://www.haomeiwen.com/subject/uuugkktx.html