面试题问 js的构造函数和普通函数的区别?
面试题:
js的构造函数和普通函数的区别?
这个问题怎么回答
回答:
至少有下面这几种:
this
的指向不同- 函数作为构造函数,也即使用
new
关键字初始化的时候,其中的this
指向实例化出来的结果; - 函数直接执行的时候,
this
的指向就是饱受诟病的 JS 特性了,这不在本题的讨论范围内,不展开讲。
- 函数作为构造函数,也即使用
默认返回值不同
- 函数作为构造函数的时候,即便不使用
return
关键字显式返回,函数也有默认的返回值,也就是这个“类”的实例,即上一条中的this
,可以认为引擎在没找到return
表达式的时候自动追加了一句代码return this;
; - 而函数直接执行的时候,有返回值就如实返回,没有返回值就默认返回
undefined
。
- 函数作为构造函数的时候,即便不使用
- 箭头函数不能作为构造函数。
回答:
写法上没有区别,就是个普通函数,不过构造函数第一个字母一般大写;
主要区别在使用上,构造函数通过new使用,会继承函数propotype上的属性和方法;
以上是 面试题问 js的构造函数和普通函数的区别? 的全部内容, 来源链接: utcz.com/p/933657.html