工厂函数创建对象
基本写法
function createBookNew (name,price,author,press) {
var book = new Object();
book.name = name;
book.price = price;
book.author = author;
book.press = press;
book.read = function () {
console.log("我的书名为:"+book.name+",作者为"+book.author+"....");
};
return book;
}
//使用工厂函数来创建对象
var book1 = createBookNew("声名狼藉者的的生活","42.00","福柯","北京大学出版社");
var book2 = createBookNew("人性的枷锁","49.00","毛姆","华东师范大学出版社");
var book3 = createBookNew("悟空传","28.00","今何在","湖南文艺出版社");
//打印对象的属性,调用对象的方法
console.log(book1.name);
console.log(book2.name);
console.log(book3.name);
book1.read();
book2.read();
book3.read();
工厂函数说明
工厂函数方式创建对象其本质是对内置构造函数创建对象的过程进行了封装
适用于大规模“批量生产”同类型的对象
function createBook (name,price,author,press) {
//001 参数 = 原料
var book = new Object();
//002 创建对象并设置对象的属性和方法 = 对原料进行加工
book.name = name;
book.price = price;
book.author = author;
book.press = press;
book.read = function () {
console.log("我的书名为:"+book.name+",作者为"+book.author+"....");
};
//003 把处理好的对象返回给我们 == 产品出厂
return book;
}
封装思路
使用函数把固定不变的部分封装起来,变化的部分提取为函数的参数
工厂函数创建对象的实现过程
① 提供一个创建对象的函数(参数)
② 在该函数内部使用new 关键字和Object构造器创建对象
③ 设置对象的属性
④ 设置对象的方法
⑤ 返回对象