代码示例
<script>
var studentCount = 0;
function Student() {
}
function StudentBuilder() {
this.student = new Student();
this.setName = function (name) {
this.student.name = name;
}
this.setGender = function (gender) {
if (gender != '男' && gender != '女')
throw '好玩不';
this.student.gender = gender;
}
this.setHairLength = function (hairLength) {
if (
(this.student.gender == '男' && hairLength > 1) ||
(this.student.gender == '女' && hairLength > 25)
) throw '回去剪头';
this.student.hairLength = hairLength;
}
this.build = function () {
studentCount++;
console.log(studentCount);
return this.student;
}
}
var builder = new StudentBuilder();
builder.setName('王花花');
builder.setGender('男');
builder.setHairLength(1);
var whh = builder.build();
var builder2 = new StudentBuilder();
builder2.setName('李拴蛋');
builder2.setGender('女');
builder2.setHairLength(20);
var whh = builder2.build();
console.log(whh);
</script>
代码示例 - 原型化
<script>
var studentCount = 0;
function Student() {
}
function StudentBuilder() {
this.student = new Student();
}
StudentBuilder.prototype.setName = function (name) {
this.student.name = name;
}
StudentBuilder.prototype.setGender = function (gender) {
if (gender != '男' && gender != '女')
throw '好玩不';
this.student.gender = gender;
}
StudentBuilder.prototype.setHairLength = function (hairLength) {
if (
(this.student.gender == '男' && hairLength > 1) ||
(this.student.gender == '女' && hairLength > 25)
) throw '回去剪头';
this.student.hairLength = hairLength;
}
StudentBuilder.prototype.build = function () {
studentCount++;
console.log(studentCount);
return this.student;
}
var builder = new StudentBuilder();
builder.setName('王花花');
builder.setGender('男');
builder.setHairLength(1);
var whh = builder.build();
var builder2 = new StudentBuilder();
builder2.setName('李拴蛋');
builder2.setGender('女');
builder2.setHairLength(20);
var lsd = builder2.build();
console.log(lsd);
</script>
代码示例 - ES6
<script>
let studentCount = 0;
class Student {
}
class StudentBuilder {
constructor() {
this.student = new Student();
}
setName(name) {
this.student.name = name;
}
setGender(gender) {
if (gender != '男' && gender != '女')
throw '好玩不';
this.student.gender = gender;
}
setHairLength(hairLength) {
if (
(this.student.gender == '男' && hairLength > 1) ||
(this.student.gender == '女' && hairLength > 25)
) throw '回去剪头';
this.student.hairLength = hairLength;
}
build() {
studentCount++;
console.log(studentCount);
return this.student;
}
}
const builder = new StudentBuilder();
builder.setName('王花花');
builder.setGender('男');
builder.setHairLength(1);
const whh = builder.build();
const builder2 = new StudentBuilder();
builder2.setName('李拴蛋');
builder2.setGender('女');
builder2.setHairLength(20);
const lsd = builder2.build();
console.log(lsd);
</script>
登录后评论