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

58次阅读

共计 975 个字符,预计需要花费 3 分钟才能阅读完成。

创建函数的三种方式:

  • 函数声明
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/JinPing…
https://blog.csdn.net/weixin_…

正文完
 0