面试题问 js的构造函数和普通函数的区别?

面试题:
js的构造函数和普通函数的区别?

这个问题怎么回答


回答:

至少有下面这几种:

  1. this 的指向不同

    • 函数作为构造函数,也即使用 new 关键字初始化的时候,其中的 this 指向实例化出来的结果;
    • 函数直接执行的时候,this的指向就是饱受诟病的 JS 特性了,这不在本题的讨论范围内,不展开讲。
  2. 默认返回值不同

    • 函数作为构造函数的时候,即便不使用return关键字显式返回,函数也有默认的返回值,也就是这个“类”的实例,即上一条中的 this,可以认为引擎在没找到 return 表达式的时候自动追加了一句代码 return this;
    • 而函数直接执行的时候,有返回值就如实返回,没有返回值就默认返回undefined
  3. 箭头函数不能作为构造函数。


回答:

写法上没有区别,就是个普通函数,不过构造函数第一个字母一般大写;
主要区别在使用上,构造函数通过new使用,会继承函数propotype上的属性和方法;

以上是 面试题问 js的构造函数和普通函数的区别? 的全部内容, 来源链接: utcz.com/p/933657.html

回到顶部