我想让我的所有函数都接受一个对象参数,这样我就可以向它传递一个独立于顺序的命名参数列表。
例如:
function A(param){
this.first = param.first ? param.first : null;
this.second = param.second ? param.second : null;
}
所以我可以通过传入任何东西来创建一个 A 对象,如果该对象没有第一个或第二个属性,那么该对象仍然会在其所有属性设置为 null 或其他一些默认值的情况下生成。
如果我想创建一个默认的 A 对象,我只想在没有任何参数对象的情况下调用 new A() ,但这会引发错误,因为我试图非法访问“未定义”的属性,所以构造函数不会不做任何事情。
我可以这样:
function A(param){
if(typeof param ==== 'undefined')param = {};
this.first = param.first ? param.first : null;
this.second = param.second ? param.second : null;
}
但是如果我想让我的所有函数都使用一个参数对象,我需要在每个函数定义中包含这一行。
是否有更好的方法来实现此结果,或者是否可以操作函数原型,以便所有函数自动进行此检查以确保参数存在或至少已初始化,以便代码在尝试访问时不会崩溃“未定义”的属性。
谢谢。