js-new创建对象的安全模式

创建一个类:

js-new创建对象的安全模式_第1张图片

使用new来创建dog2:

当不使用new创建时:

dog1为undefined,创建时没有用到new,this指向的是window,因此在全局下会添加一个name,而此时dog1是Dog函数的执行结果,因为没有return语句,所以最后返回来的是undefined;

使用安全模式可以避免这种错误的发生:

js-new创建对象的安全模式_第2张图片
js-new创建对象的安全模式_第3张图片

通过 this instanceof Dog 来判断当前this是否是Dog的实例,不是则new来实例化重新创建

你可能感兴趣的:(js-new创建对象的安全模式)