参考示例 - ES5
<script>
function Student () {
this.intro = '我是个学生';
}
function Teacher () {
this.intro = '我是个老师';
}
/**
* 生产学生
* @param {string} factory
*/
function studentFactory () {
return new Student();
}
/**
* 生产老师
* @param {string} factory
*/
function teacherFactory () {
return new Teacher();
}
/**
* 选择工厂
* @param {string} factory
*/
function userProducer (factory) {
// 判断工厂类型
switch (factory) {
case 'student':
return studentFactory;
break;
case 'teacher':
return teacherFactory;
break;
default:
throw '没有这个工厂';
break;
}
}
var factory = userProducer('teacher');
var t = factory('王花花', '特级');
console.log(t);
</script>
登录后评论