我有一个创建对象的函数,如下所示:
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/