绕过“this”引用的构造函数的返回值
使用 new 关键字调用构造函数时,默认行为是构造函数返回新创建的对象(称为“this”)。然而,在某些特定情况下,构造函数可以返回不同的值,从而有效地阻止将“this”分配给新创建的对象。
根据 ECMAScript 规范,[[Construct]] 的第 8 步内部属性定义返回行为如下:
如果构造函数(Result(6))返回值的类型不是 Object:
- The value returned by the constructor will be returned instead of "`this`".
因此,返回构造函数中除“this”之外的值:
示例:
function Foo() { return { name: "sample" }; } var foo = new Foo(); console.log(foo instanceof Foo); // false
在这种情况下,由于 Foo构造函数返回一个不是 Foo 构造函数实例的对象,(new Foo() instanceof Foo) 将计算为 false。
以上是构造函数可以返回'this”以外的值吗?的详细内容。更多信息请关注PHP中文网其他相关文章!