至少有下面这几种:this 的指向不同函数作为构造函数,也即使用 new 关键字初始化的时候,其中的 this 指向实例化出来的结果;函数直接执行的时候,this的指向就是饱受诟病的 JS 特性了,这不在本题的讨论范围内,不展开讲。默认返回值不同函数作为构造函数的时候,即便不使用return关键字显式返回,函数也有默认的返回值,也就是这个“类”的实例,即上一条中的 this,可以认为引擎在没找到 return 表达式的时候自动追加了一句代码 return this;;而函数直接执行的时候,有返回值就如实返回,没有返回值就默认返回undefined。箭头函数不能作为构造函数。
至少有下面这几种:
this
的指向不同new
关键字初始化的时候,其中的this
指向实例化出来的结果;this
的指向就是饱受诟病的 JS 特性了,这不在本题的讨论范围内,不展开讲。默认返回值不同
return
关键字显式返回,函数也有默认的返回值,也就是这个“类”的实例,即上一条中的this
,可以认为引擎在没找到return
表达式的时候自动追加了一句代码return this;
;undefined
。