gpt4 book ai didi

javascript - javascript函数中显式和隐式返回之间有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:51 26 4
gpt4 key购买 nike

从函数显式返回与隐式返回有什么区别吗?

这是让我困惑的 ATM 代码:

function ReturnConstructor(arg){
// Private variable.
var privateVar = "can't touch this, return ctor.";

// This is what is being exposed to the outside as the return object
return {
print: function() {
console.log("ReturnConstructor: arg was: %s", arg);
}
};
}

function NormalConstructor(arg){
// Private variable.
var privateVar = "can't touch this, normal ctor";

// This is what is being exposed to the outside as "public"
this.print = function() {
console.log("NormalConstructor: arg was: %s", arg);
};
}

var ret = new ReturnConstructor("calling return");
var nor = new NormalConstructor("calling normal");

这两个对象('ret' 和 'nor')对我来说似乎是一样的,我想知道这是否只是我到目前为止阅读的任何文章的作者的个人偏好,或者那里是否有任何隐藏的陷阱。

最佳答案

当您使用 new 时,有一个隐式值。当您使用new 时,就没有了。

当使用 new 调用的函数返回一个对象时,这就是 new 表达式的值。当它返回其他内容时,该返回值将被忽略,隐式构造的对象就是表达式的值。

所以,是的,可能会有差异。

关于javascript - javascript函数中显式和隐式返回之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21033556/

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