一、最简单的方式,创建一个Object实例
var obj = new Object();
obj.name = 'zhangsan';
obj.sayName = function(){
console.log(this.name);
};
二、最方便的方式,对象字面量
var obj = {
name:'zhangsan',
sayName:function(){
console.log(this.name);
};
};
三、工厂模式
function createObject(name){
var obj = new Object();
obj.name = name;
obj.sayName = function(){
console.log(this.name);
}
}
var person = createObject('zhangsan');
ps:工厂模式其实就是对方式一的封装。
四、构造函数模式
function Person(name){
this.name = name;
this.sayName = function(){
console.log(this.name);
};
}
var person = new Person('zhangsan');
ps:构造函数模式其实是对方式一和方式三的整合,好处是能够知道对象的类型。person instanceof Person //true
五、原型模式
function Person(){};
Person.prototype.name = 'zhangsan';
Person.prototype.sayName = function(){console.log(this.name);}
var person=new Person();
ps:原型链最大的作用就是实现继承,将属性与方法添加到原型上(prototype),通过该构造函数 new 出来的实例对象都具有原型上的属性和方法。