gpt4 book ai didi

javascript - 有什么理由在构造函数中手动设置 `return` 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:57:23 25 4
gpt4 key购买 nike

通常,在构造函数中,当使用 new 前缀调用函数时,它会返回绑定(bind)到函数内 this 的对象。但我想也有可能(我想我什至在 crockford 的书中读到了这一点)手动返回你自己的值(value)。这种做法有什么用处吗?

最佳答案

如果您从构造函数返回一个值类型,您将获得不同的行为,具体取决于是否使用了 new。这就是 String 的工作原理。在您的 JavaScript 控制台中查看此对象:

{
s: String("abc"),
S: new String("abc")
}

小的 s 包含一个字符串值,但是大的 S 包含一个字符串对象。也许是细微的差别。

您可以做更多的事情,将相同的功能用于不同的目的:

function Foo() {
return "abc";
}
Foo.prototype.DoSomething = function () {
// something completely unrelated to "abc"
};
var a = Foo(); // The string "abc". Does not have a DoSomething() method.
var b = new Foo(); // An Object with a DoSomething() method. Doesn't know about "abc".

根据是否使用了 new,您会得到完全不同的东西。

关于javascript - 有什么理由在构造函数中手动设置 `return` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13484895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com