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

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

这个问题怎么回答

阅读 1.3k
2 个回答

至少有下面这几种:

  1. this 的指向不同

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏