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



我具有以下创建对象的函数:

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调用一个函数构造一个新对象,并使用给定函数来初始化对象。这有点特别的是,如果您从该函数中 return(例如对象),该值将用作新对象。听起来很复杂,但是归结为reliable_person()new reliable_person()会导致完全相同的事情,因为您正在从中返回一个对象。因此,将new与该功能一起使用毫无意义。

从中删除多余的new,剩下的就是返回对象的正常函数("工厂函数")。是的,这有效并且是"可靠的"。

最新更新