javascript - 将javascript构造函数包装到另一个函数中

标签 javascript function object

我有一个创建对象的函数,如下所示:

function person() {
    this.name = "test person";
}
var me = new person();

现在我打算将此函数包装到另一个类似的函数中以用于断言目的。

function reliable_person() {
    /* do check on params if any*/
    return new person();
}
var me = new reliable_person();

这是一种可行的方法吗?我知道构造函数本身有更好的方法进行此类检查,但这是可靠的解决方案吗?

最佳答案

使用 new 调用一个函数会构造一个新对象并使用给定的函数来初始化该对象。有一点特别之处在于,如果您从该函数返回 一个非原始值(如对象),该值将用作新对象。听起来很复杂,但归结起来就是 reliable_person()new reliable_person() 产生完全相同的结果,因为您要从中返回一个对象。因此,将 new 与该函数一起使用是没有意义的。

从中删除多余的new,剩下的就是一个返回对象的普通函数(“工厂函数”)。是的,这有效并且“可靠”。

关于javascript - 将javascript构造函数包装到另一个函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37830733/

相关文章:

php - 使用 URL 将参数传递给函数

javascript 使用 &lt;input type ="button"...> 而不是 <button ...>

javascript - Vue.js 中的替代绑定(bind)语法

javascript - 如何使用 JavaScript 和 jQuery 创建 NxN 板

javascript - 使用 Material UI 菜单时在控制台中收到警告。建议我解决方案。我在文本对象中使用 HTML

java - 在 Java 中创建多变量函数

c# - 有没有更好的初始化类的方法?

java - 从类中删除java中的对象

javascript - 如何使用 Javascript 从对象数组内的数组属性获取不同的值

javascript - 控制台错误: No 'Access-Control-Allow-Origin' header is present on the requested resource