首页 > web前端 > js教程 > JavaScript 构造函数何时可以返回除'this”之外的其他内容?

JavaScript 构造函数何时可以返回除'this”之外的其他内容?

DDD
发布: 2024-11-11 07:11:02
原创
640 人浏览过

When Can a JavaScript Constructor Return Something Other Than 'this'?

构造函数返回除 'this' 以外的值的实例

在 JavaScript 中,当使用 new 关键字调用构造函数时,它通常会返回新创建的对象。但是,在特定情况下,它可以返回不同的值以避免返回此值。

返回其他值的条件

如 ECMA-262 第三版规范中所述[[Construct]] 内部属性(步骤 7),构造函数的返回值 (Result(6)) 决定是否返回。如果 Result(6) 是 不是 对象类型,则将返回它而不是 this。此条件对于构造函数的正确执行至关重要。

示例

考虑以下构造函数:

function Foo() {
  return 10; // Returning a non-object primitive
}

var foo = new Foo();
登录后复制

在此示例中,因为10 是一个非对象基元,它将作为 Foo() 构造函数的结果返回。因此, foo 将被分配原始值 10,并且 (new Foo() instanceof Foo) 将计算为 false,因为 foo 是原始类型。

摘要

总之,只有当构造函数的返回值(Result(6))不是时,构造函数才能返回除此之外的值对象类型。此条件允许构造具有非对象值的对象或将控制传递给其他构造函数。

以上是JavaScript 构造函数何时可以返回除'this”之外的其他内容?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板