没有合适的资源?快使用搜索试试~ 我知道了~
如何创建对象什么是对象?方法一、工厂模式二、构造函数模式代码分析:三、原型模式代码示例1:代码示例2:通过字面量简写原型语法原型的动态性原型对象的问题四、组合使用构造函数模式和原型模式五、动态原型模式六、寄生构造函数模式七、稳妥构造函数模式 什么是对象? ECMA-262中把对象定义为:无序属性的集合,其属性可以包含基本值、对象或者函数。 每个对象都是基于一个引用类型创建的。 对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。 无非就是一组名:值对,其中值可以是数据或函数。 方法 通过Object构造函数或者对象字面量可以创建单个对象,有什么缺点? 使用同一个接口创建很多对象,会产生
资源详情
资源评论
资源推荐
如何创建一个对象如何创建一个对象
如何创建对象如何创建对象什么是对象?方法一、工厂模式二、构造函数模式代码分析:三、原型模式代码示例1:代码示例2:通过字面量简写原型语法原型的
动态性原型对象的问题四、组合使用构造函数模式和原型模式五、动态原型模式六、寄生构造函数模式七、稳妥构造函数模式
什么是对象?什么是对象?
ECMA-262中把对象定义为:无序属性的集合,其属性可以包含基本值、对象或者函数。
每个对象都是基于一个引用类型创建的。
对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。
无非就是一组名名:值对值对,其中值可以是数据或函数。
方法方法
通过通过Object构造函数或者对象字面量可以创建单个对象,有什么缺点?构造函数或者对象字面量可以创建单个对象,有什么缺点?
使用同一个接口创建很多对象,会产生大量的重复代码。
一、工厂模式一、工厂模式
抽象了创建具体对象的过程。
ECMAScript中无法创建类,所以就有:用函数来封装以特定接口创建对象的细节。
示例:
function createPerson(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 = createPerson("Nicholas", 29, "Software Engineer");
var person2 = createPerson("Greg", 27, "Doctor");
person1.sayName(); //"Nicholas"
person2.sayName(); //"Greg"
根据接受的参数来构建一个包含必要信息的Person对象,可以无数次调用这个函数,每次都会返回一个包含三个属性一个方法的对象。
工厂模式的优缺点?工厂模式的优缺点?
优点优点:解决了创建多个相似对象的问题。
缺点缺点:没有解决对象识别的问题,即怎样知道一个对象的类型。
二、构造函数模式二、构造函数模式
使用构造函数模式将前面的例子重写:
function Person(name, age, job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = function(){
alert(this.name);
};
}
var person1 = new Person("Nicholas", 29, "Software Engineer");
var person2 = new Person("Greg", 27, "Doctor");
person1.sayName(); //"Nicholas"
person2.sayName(); //"Greg"
alert(person1 instanceof Object); //true
alert(person1 instanceof Person); //true
alert(person2 instanceof Object); //true
alert(person2 instanceof Person); //true
alert(person1.constructor == Person); //true
alert(person2.constructor == Person); //true
alert(person1.sayName == person2.sayName); //false
代码分析:代码分析:
新建出来的person1和person2对象都有一个constructor属性,该属性都指向Person.constructor属性是用来标识对象类型的。
这就意味着用自定义的构造函数创建的实例都会标识为一种特性的类型。这是胜过工厂模式的地方。
调用构造函数经历的调用构造函数经历的4个步骤:个步骤:
weixin_38732740
- 粉丝: 2
- 资源: 895
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0