js-new创建对象的安全模式
2017-07-11 本文已影响0人
ml火guo
创建一个类:

使用new来创建dog2:



当不使用new创建时:

dog1为undefined,创建时没有用到new,this指向的是window,因此在全局下会添加一个name,而此时dog1是Dog函数的执行结果,因为没有return语句,所以最后返回来的是undefined;
使用安全模式可以避免这种错误的发生:



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