一
字面量
|
|
实例
|
|
二
1.工厂模式
function person(name, age, job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function () {
alert(this.name)
}
return o;
}
var person1 = person(‘Nicholas’,22, ‘Software Engineer’);
2.构造函数模式
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
this.sayName = function () {
alert(this.age)
}
}
var person2 = new Person('Nicholas', 22, 'Software Engineer');
3.原型模式
function Person() {
}
Person.prototype.name = 'Nicholas';
Person.prototype.age = 22;
Person.prototype.job = 'Software Engineer';
Person.prototype.sayName = function () {
alert(this.name)
}
var person3 = new Person();
3.1更简单的原型方法
function Person() {
}
Person.prototype = {
name : 'Nicholas',
sge:22,
job:'Software Engineer',
sayName:function () {
alert(this.name)
}
}
var person3 = new Person();
4.组合使用构造函数和原型模式(也是最常用的方法)
function PersonPrototype(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
}
Person.prototype.sayName = function () {
alert(this.name)
}
var person4 = new Person(‘Nicholas’, 22, ‘Software Engineer’)
5.动态原型模式
function person() {
//属性
this.name = name;
this.age = age;
this.job = job;
//方法
if(typeof this.sayName != "function"){
Person.prototype.sayName = function () {
alert(this.name)
}
}
}
var person5 = new Person(‘Nicholas’, 22, ‘Software Engineer’)
6.寄生构造函数模式
function Person(name, sge, job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function () {
alert(this.name)
}
return o ;
}
var person6 = new Person(‘Nicholas’, 22, ‘Software Engineer’);
7.稳妥构造函数
function person (name, age, job) {
//创建要返回的对象
var o = new Object();
//可以在这里定义私有变量和函数
//添加方法
o.sayname = function () {
alert(name)
}
return o ;
}
var person7 = new Person(‘Nicholas’, 22, ‘Software Engineer’);