通过工厂的方式来创建Person对象,在createPerson中创建一个对象,然后为这个对象设置相应的属性和方法,之后返回这个对象。
function createPerson(name, age){ var obj = new Object(); obj.name = name; obj.age = age; obj.say = function(){ alert(this.name+","+this.age); } return obj; } var p1 = createPerson("Leon",22); var p2 = createPerson("Ada",33); p1.say(); p2.say(); alert(typeof p1); //object alert(p1 instanceof Object); //true
使用工厂的方式,虽然有效的解决了类的问题,但是依然存在另外一个问题:我们无法检测对象p1和p2的数据类型,
通过typeof仅仅只能检测出object类型,如果希望使用instanceof来检测的话,无法确定检测的类型。