JS中普通函数与构造函数

一、普通函数遵循小驼峰命名规则,构造函数遵循大驼峰命名规则

二、普通函数调用直接函数名加上(),括号中可以填入相应的参数;构造函数的调用需要使用关键字new,例子如下:

  // 普通函数声明
  function run () {
    console.log('I can run!!');
  }
  // 普通函数的调用
  console.log(run());

  // 构造函数声明
  function Person(name,height) {
    this.name = name;
    this.height =height;
    this.say = function (){
      console.log('hello');
    };
  }
  // 构造函数的调用
  console.log(new Person('mrgao','170'));

三、调用时返回内容不同

上述代码中执行控制台的结果为:
在这里插入图片描述
从结果中可以看到,假如普通函数中没有设置return的内容,调用后,返回的是undefined。而构造函数则是返回了一个叫Person的对象,至于这个Person对象里面的属性跟方法是怎么来的呢?下面我来为大家一一讲解。

说到这里,不得不说的就是构造函数内部的原理。
执行构造函数的时候,其内部会有一些“隐式”操作,以下是执行构造函数内部时的原理步骤:
首先构造函数执行前,会在函数体最前面添加一个this={},然后按照顺序执行代码,然后最后会有return this; 其中 添加this={} 以及return this;操作是隐式操作,js引擎会自动帮我们执行。

注意一点:假如强行要改变构造函数返回的结果也是可以的,可以在构造函数里面添加return语句,但是除了{}、[]、以及function类型会被如实返回,其他return的情况都会返回原来的构造函数的对象,例子如下:

  // 构造函数声明
  function Person(name,height) {
    this.name = name;
    this.height =height;
    this.say = function (){
      console.log('hello');
    };
    return 1
  }
  // 构造函数的调用
  console.log(new Person('mrgao','170')); 
  //Person {name: "mrgao", height: "170", say: ƒ}

return 1但是得到的却是Person对象,但是当改为return 任意对象数组或者函数都会如实返回。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值