java - new 会返回命名函数构造函数实例吗?

标签 java javascript jquery

var foo = function () {
    return new moo();
}

var moo = function () {
    return this;
}

如果我执行语句

new foo()

我真的会得到一个 moo 实例吗?这看起来既明显又不直观。从功能上讲,这是应该发生的事情,但与此同时,如果您不了解内部结构,这不是预期的。

编辑:我意识到公元前这似乎不符合直觉。在 Java 中,构造函数不能返回任何内容。

这与 jquery 使用的构造函数模式非常相似。

最佳答案

是的,您将获得一个 moo 实例。

不直观是因为你可以在javascvipt构造函数中返回对象本身以外的东西。这是可能的,因为在js中所有的函数实际上都是对象。在 java 和 c# 这样的语言中这是不可能的,构造函数总是返回构造函数所属的对象。您也不能在此类语言中调用没有 new 关键字的构造函数。 不从构造函数返回任何东西与 return this; 在 js 中(假设它使用了构造函数)一样,也增加了一些困惑。

关于java - new 会返回命名函数构造函数实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17775007/

相关文章:

javascript - 在一个列表框中选择多个术语 asp c#

java - 如何正确 stub 外部方法?模拟语句上的 NullPointer

java - 为什么要加40左右?

javascript - JS - 获取点击标签的数据属性以在其他页面上使用

javascript - ionic 弹出框,类型错误 : Cannot read property 'show'

javascript - 对对象数组进行排序?

javascript - 使用 jquery-csv 获取 CSV 到数组中

javascript - 选择缩略图时打开图库

java - Spring Boot 和 Gradle 多模块项目,未能正确加载依赖项

java - LAN 网络中的连接系统-Java