对象的创建模式
对象的创建模式
对象的创建模式有很多种,具体分为以下五种:
- 方式一:Object构造函数模式
- 创建Object对象,再添加方法与属性
- 适用场景:起始时不确定对象内部数据
- 问题:语句太多
var p = new Object();
p = {};
p.name = "Key";
p.setName = function(name){
this.name = name;
}
- 方式二:对象字面量模式
- 使用{}创建对象,同时指定属性和方法
- 适用场景:起始时对象内部数据是确定的
- 问题:如果创建多个对象,有重复代码
var p = {
name:"Key",
function setName(name){
this.name = name;
}
}
p.setName("Tom");
- 方式三:工厂模式
- 使用函数动态创建对象
- 适用场景:需要创建多个对象
- 问题:对象没有一个具体的类型,都是Object类型
function ceatePerson(name){
var p = {
name:name;
setName:function(name){
this.name = name;
}
}
return p;
}
var p = ceatePerson("Key");
console.log(p);
- 方式四:自定义构造函数
- 通过new创建对象
- 适用场景:需要创建多个类型确定的对象
- 问题:每个对象都有相同的数据,内存占用过多
function Person(name){
this.name = name;
this setName:function(name){
this.name = name;
}
}
var p = new Person("Key");
console.log(p);
- 方式五:构造函数+原型的组合模式
- 自定义构造函数,属性在函数中初始化。方法添加到原型上(比较规范化)
- 适用场景:需要创建多个类型确定的对象,解决内存占用过多问题
function Person(name,age){
this.name = name;
this.age = age;
}
Person.prototype.setName = function(name){
this.name = name;
}
var p = new Person("Key",99);
p.setName = "Tom";
console.log(p);
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!