我具有以下创建对象的函数:
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
,剩下的就是返回对象的正常函数("工厂函数")。是的,这有效并且是"可靠的"。