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

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

  • 函数声明
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

你可能感兴趣的:(三种方式创建函数及构造函数与普通函数之间的区别)