构造函数可以返回哪些值以避免返回?

构造函数可以返回哪些值以避免返回?

Javascript中的返回语句返回值的确切情况是什么?this当使用new关键词?

例子:

function Foo () {
  return something;}var foo = new Foo ();

如果我没弄错,如果something是一个非函数的原语,this会被归还。不然的话something会被归还。这是对的吗?

IOW,什么值能something采取引起(new Foo () instanceof Foo) === false?


收到一只叮咚
浏览 404回答 3
3回答

沧海一幻觉

上描述了确切的条件。[[Construct]]属性使用的内部属性。new操作员:从ECMA-262第三。版本规格:13.2.2 [[Construct]]当[[Construct]]属性的Function对象F调用时,将采取以下步骤:创建一个新的本机ECMAScript对象。设置[[Class]].的性质Result(1)到"Object".的原型属性的值。F.如果Result(3)是一个对象,将[[Prototype]].的性质Result(1)到Result(3).如果Result(3)不是对象,请将[[Prototype]].的性质Result(1)原作Object中描述的原型对象15.2.3.1.调用[[Call]].的性质F,提供Result(1)就像this值,并提供传递给[[Construct]]作为参数值。如果Type(Result(6))是Object然后再回来Result(6).回归Result(1).查看步骤7和步骤8,只有在Result(6)(从F构造函数)是不一个物体。

慕婉清6462132

我找不到关于这件事的任何文件,但我认为你是对的。例如,您可以返回new Number(5)构造函数,而不是文字。5(这被忽略和this返回)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript