弥补工厂函数创建对象的无法判断具体是什么对象的类型
区别于工厂函数的写法对象名前面字母大写
试比较工厂函数和构造函数的不同?
从代码量构造函数代码量少一些,
工厂函数内部需要创建对象,
返回对象,
以及需要你内部创建的对象名来赋值属性和方法,
命名来说;第一个构造名为大写而工厂则小写
//工厂函数代码
function createHero(name, blood, age, weapon) {
var o = new Object();
o.name = name;
o.blood = blood;
o.age = age;
o.weapon = weapon;
o.attack = function() {
console.log(weapon + '击杀');
}
return o;
}
var hero = createHero('张三', 100, '80', '剑')
hero.attack();
//构造函数代码
function Hero(name, blood, age, weapon) {
this.name = name;
this.blood = blood;
this.age = age;
this.weapon = weapon;
this.attack = function() {
console.log(weapon + '击杀');
}
}
var hero = new Hero('张三', 100, '80', '剑')
hero.attack();

构造函数可以具体检测
提取点:
判断对象类型三种方法
X insistanceof Y
typeof
object.constructor