创建对象:工厂模式和自定义构造函数的区别
共同点: 都是函数, 都可以创建对象, 都可以传入参数
区别:
工厂模式:
- 函数名是小写
- 有new,
- 有返回值
- new之后的对象是当前的对象
- 直接调用函数就可以创建对象
//工厂模式创建对象 function createObject(name, age) { var obj = new Object(); obj.name = name; onj.age = age; obj.sayHi = function () { console.log("您好"); }; return obj; }
var per2 = createObject("小明", 20);
自定义构造函数:
- 函数名是大写(首字母)
- 没有new
- 没有返回值
- this是当前的对象
- 通过new的方式来创建对象
//自定义构造函数创建对象 function Person(name, age) { this.name = name; this.age = age; this.sayHi = function () { console.log("您好"); }; }
var per1 = new Person("小红", 20);